NCrunch 无法构建引用 Microsoft.Azure.Functions.Worker.Sdk 的项目

NCrunch can't build project that references Microsoft.Azure.Functions.Worker.Sdk

我有一个引用 Microsoft.Azure.Functions.Worker.Sdk 版本 1.0.4 的 Azure Functions v3(dotnet 隔离)C# 项目。当 NCrunch 尝试构建此项目时,它失败并显示消息:..\..\..\..\..\..\program files (x86)\microsoft visual studio19\professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets (1150, 7): The target "NCrunchPrepareForBuild" does not exist in the project. 如果我删除包引用,构建成功。

Conditionally disabling <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.0.4" OutputItemType="Analyzer" Condition="'$(NCrunch)' != '1'" /> 的引用无效。奇怪的是,如果我将其更改为 Condition="'$(NCrunch)' == '1'" 它确实有效,这表明 $(NCrunch) 属性 在构建过程中此时尚未设置。

错误消息引用的行如下所示:

<Target
      Name="PrepareForBuild"
      DependsOnTargets="$(PrepareForBuildDependsOn)">

根据 arkiaconsultingClement 的建议:

仅为 NCrunch 构建触发的路径

 <Target Name="CopyAzureFunctionOutput" AfterTargets="_GenerateFunctionsPostBuild" Condition="'$(NCrunch)' == '1'">
    <Exec Command="xcopy /y &quot;$(OutDir)\bin&quot; &quot;$(OutDir)&quot;" />
  </Target>

要禁用目标加载,您可以在引用 Azure 函数包的项目中将 ExcludeRestorePackageImports 属性 设置为 true,如下所示:

<PropertyGroup Condition="'$(NCrunch)' == '1'">
<ExcludeRestorePackageImports>true</ExcludeRestorePackageImports>
</PropertyGroup>

这样,目标不会被触发,文件不会被移动到 bin 文件夹中,NCrunch 工作正常。

可以参考Azure function:build issue

如果以上建议无效,您可以在NCrunch forum and also open an issue on GitHub: azure-functions-vs-build-sdk

上提出同样的问题