gpt4 book ai didi

msbuild - 旧项目格式忽略 PackageReference 条件

转载 作者:行者123 更新时间:2023-12-05 07:20:38 25 4
gpt4 key购买 nike

我正在尝试使用 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 不支持条件的提及。有什么我想念的吗?

谢谢

最佳答案

我认为非 SDK 项目不支持 PackageReference;我怀疑无论您指定什么条件,它们都会被忽略。 在与项目文件相同的目录中检查 packages.config 文件——如果我是对的,它存在并引用有问题的包。

关于msbuild - 旧项目格式忽略 PackageReference 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57434587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com