C ++项目中NuGet包的PackageReference

时间:2018-05-30 07:47:58

标签: visual-studio-2017 nuget

我是一个项目的一部分,我们在Visual Studioe中为NuGet包使用packages.config文件,然后通过项目文件中的Import语句包含每个包依赖项。

如果您总是想要这些包,这样可以正常工作,但是如果开发人员不需要/想要它,我们会提供一些我们想要排除的条件包。我找到了PackageReference tag,这将使依赖更加清晰,并让我们有条件地包含这些包。

C#项目似乎完全支持,但我无法弄清楚它是否支持C ++项目。

我尝试删除所有的packages.config文件并用PackageReference标记替换所有引用,但PackageReference标记似乎没有得到包管理器的选择。我已经浏览了所有"迁移工具"我也可以找到Visual Studio,但没有运气。

是否可以将它用于C ++项目?如果没有,是否有一种解决方法可以让我有条件地排除某些包?

我使用的是Visual Studio Professional 15.6.7。

1 个答案:

答案 0 :(得分:6)

  

是否可以将它用于C ++项目?

此时,PackageReference 尚未支持C ++项目。 NuGet团队正在评估它以支持未来的版本。您可能已经通过一些黑客工作,但如果您创建一个新的c ++项目并尝试将此包安装为PackageReference,它就不会允许您。所以我建议你继续为你的c ++项目和库使用packages.config。

此外,您可以在Visual Studio UserVoice网站上添加您对此功能的请求或投票:Use PackageReference in vcxproj。当有足够的社区投票并为此反馈添加评论时,产品团队成员将认真对待此反馈。

  

如果没有,是否有一种解决方法可以让我有条件地排除某些包?

您可以在自定义目标文件中包含条件引用,并将dll部署在程序包的tools文件夹中,以便Nuget不会自动将它们添加为引用。

认证NuGet update and conditional references

希望这有帮助。