我是一个项目的一部分,我们在Visual Studioe中为NuGet包使用packages.config文件,然后通过项目文件中的Import
语句包含每个包依赖项。
如果您总是想要这些包,这样可以正常工作,但是如果开发人员不需要/想要它,我们会提供一些我们想要排除的条件包。我找到了PackageReference tag,这将使依赖更加清晰,并让我们有条件地包含这些包。
C#项目似乎完全支持,但我无法弄清楚它是否支持C ++项目。
我尝试删除所有的packages.config文件并用PackageReference
标记替换所有引用,但PackageReference标记似乎没有得到包管理器的选择。我已经浏览了所有"迁移工具"我也可以找到Visual Studio,但没有运气。
是否可以将它用于C ++项目?如果没有,是否有一种解决方法可以让我有条件地排除某些包?
我使用的是Visual Studio Professional 15.6.7。
答案 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
希望这有帮助。