MSBuild 用于在生成时将 nuget 包应用于项目

MSBuild to apply a nuget package to a project at build time

本文关键字:nuget 应用于 项目 用于 MSBuild      更新时间:2023-10-16

我有一个cmake项目,在Linux上构建得很好,我也想在Windows上构建。该代码是可移植的,由C++因此...它应该建立。唯一的问题是,在Windows上,我需要使用nuget来恢复一些软件包,cpprestsdk就是其中之一。现在当我跑步时

cmake . 

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

我希望 MSBuild 做的是将 packages.config 中包含的包应用于项目目录中找到的所有项目文件。有人知道怎么做吗?

恐怕你不能做这种事情。这是因为无论你是使用 MSBuild 还是 NuGet 来做这件事,你都必须使用nuget.exe来做这件事。但是,将 nuget 包安装到项目文件依赖于VS 功能,而不是nuget.exe并且 nuget 团队不打算将其引入 exe。

NuGet 命令行实际上不会安装任何包。安装命令实际上是在执行还原操作。

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

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

您可以参考此线程和此线程了解详细信息。

希望这有帮助。