Visual Studio构建Azure Function报错:找不到WorkerExtensions.csproj
解决Azure Functions构建时MSB3202错误的方案
清理缓存后重新构建
- 删除项目根目录下的
obj和bin文件夹,这些缓存目录的异常文件可能引发路径问题 - 在Visual Studio里右键项目,依次选清理→生成
- 也可以用命令行操作:执行
dotnet clean完成清理,再运行dotnet build重新构建
- 删除项目根目录下的
手动创建缺失的WorkerExtensions.csproj
如果清理后还是找不到目标文件,按以下步骤手动生成:- 按照错误提示的路径创建文件夹:
D:\mycompany\myFunction\obj\Debug\net8.0\WorkerExtensions\ - 在该文件夹下新建
WorkerExtensions.csproj文件,内容参考下方模板(根据你的.NET版本调整TargetFramework):
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.20.1" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="2.0.4" /> </ItemGroup> </Project>- 按照错误提示的路径创建文件夹:
检查NuGet包版本兼容性
确保Microsoft.Azure.Functions.Worker和Microsoft.Azure.Functions.Worker.Sdk版本匹配,避免版本不兼容导致的生成异常。当前你用的Sdk版本是2.0.4,对应Worker版本建议用1.20.1;如果问题依旧,可尝试升级到最新稳定匹配版本,比如Worker 1.21.0搭配Sdk 2.1.0。临时修改MSBuild目标文件
找到错误提示中的Microsoft.Azure.Functions.Worker.Sdk.targets文件(路径:C:\mypc\mydirectory\.nuget\packages\microsoft.azure.functions.worker.sdk\2.0.4\build\),打开后给_WorkerExtensionsRestore目标添加存在性判断,避免找不到文件时执行任务:<Target Name="_WorkerExtensionsRestore" DependsOnTargets="_FunctionsPreBuild;_GetRestoreSettings"> <MSBuild Projects="$(ExtensionsCsProj)" Targets="Restore" RemoveProperties="$(_FunctionsExtensionRemoveProps)" Properties="IsRestoring=true;RestoreSources=$(_OutputSources);$(_FunctionsExtensionCommonProps)" Condition="Exists('$(ExtensionsCsProj)')" /> </Target>注意:这是临时方案,后续更新NuGet包时修改会被覆盖,优先使用前面的方法。
内容的提问来源于stack exchange,提问作者Age of Empires
相关产品推荐
相关产品推荐

