我有一个cmake项目,可以在Linux上很好地构建,并且我也想在Windows上也可以构建。该代码是可移植的,由C++制成,因此...应该构建。唯一的问题是,在Windows上,我需要使用nuget还原某些软件包,cpprestsdk是其中之一。现在当我跑步

cmake .

CMake将生成我完全不希望包含在VCS中的解决方案文件和项目文件。我希望MSBuild要做的是将我的packages.config中包含的包应用于项目目录中找到的所有项目文件。
有人知道吗?

最佳答案



恐怕你不能做这样的事情。那是因为无论您是使用MSBuild还是NuGet来执行此操作,都必须使用nuget.exe来执行此操作。但是,将nuget软件包安装到项目文件取决于 VS功能而不是nuget.exe,并且nuget团队不打算将其引入exe。

NuGet命令行实际上并未安装任何软件包。 install命令实际上正在执行还原操作。

这意味着nuget.exe install将仅下载软件包并将其解压缩到输出位置。它不会修改项目文件。尽管,程序包管理器控制台似乎为此提供了“Install-Package”,但是您必须使用Visual Studio打开每个项目文件,并在程序包管理器控制台中为每个项目文件执行Install-Package,这不是您想要的。因此,您无法在Visual Studio之外启用此脚本。

因此,我们无法使用MSBuild将packages.config中包含的软件包应用于项目目录中找到的所有项目文件。

您可以引用this threadthis thread以获得详细信息。

希望这可以帮助。

关于c++ - MSBuild在构建时将nuget包应用于项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48618589/

10-14 15:43
查看更多