如何以正确的方式将nuget包添加到package.config中

本文关键字:添加 config package 包添加 nuget 方式 | 更新日期: 2023-09-27 17:59:27

对于我的C#项目,我正在维护一个packages.config,它包括我的项目所需的所有依赖项。随着时间的推移,我一直在使用常规文本编辑器手动复制粘贴条目,检查我在NuGet网站上找到的版本号等等。为了在结账时恢复包,我使用了迄今为止效果良好的nuget -o nuget-packages install packages.config(我在非windows系统上使用Xamarin Studio,因此没有可用的VS)。

我刚刚意识到,在文本编辑器中扰乱packages.config不可能是预期的方式。我从npm和bower那里知道,npm install --save-dev <pkg-xy>将用于作业,并将包版本写回配置。在NuGet.exe中有类似的功能吗?

如何以正确的方式将nuget包添加到package.config中

从命令行不支持此操作。您必须手动编辑packages.config文件,或者编写一个实用程序来完成这项工作,或者使用此功能扩展NuGet.exe。

NuGet中没有类似于NPM的NPM安装-保存

目前,当您想在项目中安装新的NuGet包时,让packages.config文件自动更新的唯一方法是使用IDE,如Visual Studio或Xamarin Studio,并实际安装该包。在安装新程序包时,从命令行使用NuGet.exe没有在packages.config文件中添加/删除项的选项。

NuGet.exe确实有一个update命令,该命令将把包更新到最新版本。虽然这会更新你的packages.config文件,但它也会通过添加NuGet包所需的任何程序集引用来更新你的项目文件。

你真的不应该编辑packages.config。Package Restore并没有像你想象的那样。它只是下载packages.config.中列出的任何丢失的包

您可能认为这是您想要的,但Package Restore不会为您的项目添加引用。它也没有做包创建者想要做的任何其他事情,比如运行install.ps1脚本。

安装软件包时,NuGet会处理所有这些,因此您的项目文件添加了引用、内容等。这和packages.config文件是您将致力于源代码管理的文件。您可以省略实际的文件夹,这样就不必提交大型二进制文件。

当你打开解决方案并构建时,NuGet会发现包不见了,并会像签入一样下载它们。实际的"安装"已经完成(并提交)。这就是包还原所做的一切:不多也不少。

如果你使用的是Xamarin Studio,你可以按照这里的说明安装NuGet:

https://github.com/mrward/monodevelop-nuget-addin