AZFW0109:生成项目不应被构建

物品 价值
规则 ID AZFW0109
Category Sdk
Severity Warning

原因

Build目标正在生成azure_functions.g.csproj的项目中运行。 该项目并非直接构建,仅用于恢复和解析扩展有效载荷。

规则描述

生成的项目并非直接构建,而是仅用于恢复和解析扩展有效载荷。 建造会收到警告。

如何修复

诊断导致生成的项目(azure_functions.g.csproj)被直接构建的原因。 一个常见原因是某个遍历文件或 dirs.proj 文件使用 glob 模式来发现项目,结果无意中把生成的项目也包含进来了。 MSBuild 二进制日志 有助于识别为什么以及如何 azure_functions.g.csproj 被构建。

ProjectReference glob 模式中排除

如果遍历项目使用 glob 模式来包含项目,请添加一个 Exclude 以跳过生成的文件:

<ItemGroup>
  <ProjectReference Include="**/*.csproj" Exclude="**/azure_functions.g.csproj" />
</ItemGroup>

移除指定的 ProjectReference

如果生成的项目被添加为显式引用,请移除 ProjectReference 指向该项目的条目:

  <ItemGroup>
-   <ProjectReference Include="path/to/azure_functions.g.csproj" />
  </ItemGroup>

有条件地移除匹配 ProjectReference 的物品

如果你无法轻松修改 glob 或显式包含项,可以在匹配项解析出来后将其删除:

<ItemGroup>
  <ProjectReference Remove="@(ProjectReference)" Condition="'%(Filename)%(Extension)' == 'azure_functions.g.csproj'" />
</ItemGroup>

何时应压制警告

不建议压制。 建议找出导致该项目建设的原因并加以防范。