[英]How to add a nuget package to the package.config the proper way?
对于我的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中有与此等效的功能吗?
从命令行不支持。 您将必须手动编辑packages.config文件,或者编写实用程序来为您完成此工作,或者使用此功能扩展NuGet.exe。
NuGet中没有等效于NPM的npm install -save
当前,当您要将新的NuGet软件包安装到项目中时,自动更新packages.config文件的唯一方法是使用IDE(例如Visual Studio或Xamarin Studio)并实际安装该软件包。 从命令行使用NuGet.exe时,没有选择在安装新软件包时向/packages.config文件中添加条目或从中删除条目的选项。
NuGet.exe确实具有更新命令,该命令会将软件包更新为最新版本。 尽管这将更新您的packages.config文件,但也会通过添加NuGet软件包所需的任何程序集引用来更新您的项目文件。
您确实不应该编辑packages.config 。 程序包还原无法执行您认为的操作。 它仅下载packages.config中列出的所有缺少的软件包 。
你可能会认为这是你想要的,但包还原不添加引用到您的项目。 它也不会执行软件包创建者打算执行的其他任何操作,例如运行install.ps1脚本。
安装软件包时,NuGet会处理所有这些问题,因此您的项目文件已添加了引用,内容等。这就是您将提交给源代码管理的packages.config文件。 您可以忽略实际的packages文件夹,因此不必提交大型二进制文件。
当您打开解决方案并进行构建时,NuGet将看到软件包丢失,并像您已签入它们一样下载它们。实际的“安装”已经完成(并提交)。 这就是Package Restore的全部功能:不多也不少。
如果您使用的是Xamarin Studio,则可以按照以下说明安装NuGet:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.