我正在尝试通过使用 Directory.Builds.props/Directory.Build.targets 文件来集中我们的一些项目配置。不幸的是,我们混合了新旧(sdk 风格)项目格式。由于某些功能在新格式中不可用,并非我们所有的项目都可以转换为新格式。
我遇到的问题是我想让我们所有的测试项目自动引用某些 nuget 包。对于新格式的项目,这很好用。然而,旧格式的项目似乎忽略了我指定的 PackageReferences 的任何条件。我对这种情况使用什么似乎并不重要。
这是一个非常简单的 Directory.Build.Targets 文件的示例:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReference Include="Moq" Version="4.12.0" Condition="False" />
</ItemGroup>
</Project>
在这种情况下,我永远不会看到任何项目中包含 Moq 包。对于旧格式的所有项目,无论如何都包括在内。
我也尝试在以下条件下使用条件:
- ItemGroup 本身
- 选择/何时阻止
另一方面,对属性组或属性设置条件按预期工作。
我没有在文档中看到任何关于 ItemGroup 或 PackageReference 不支持条件的内容。有什么我想念的吗?
谢谢