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

C# 如何以正确的方式将nuget包添加到package.config?,c#,command-line,nuget,nuget-package,xamarin-studio,C#,Command Line,Nuget,Nuget Package,Xamarin Studio,对于我的C项目,我维护一个packages.config,其中包含项目所需的所有依赖项。在这段时间里,我一直在使用常规文本编辑器手动复制粘贴条目,检查在NuGet网站上找到的版本号,等等。要在签出时恢复包,我使用nuget-o nuget-packages install packages.config,它工作得很好。到目前为止,我在非windows系统上使用Xamarin Studio,因此没有可用的VS 我刚刚意识到在文本编辑器中弄乱packages.config不是我想要的方式。我从npm

对于我的C项目,我维护一个packages.config,其中包含项目所需的所有依赖项。在这段时间里,我一直在使用常规文本编辑器手动复制粘贴条目,检查在NuGet网站上找到的版本号,等等。要在签出时恢复包,我使用nuget-o nuget-packages install packages.config,它工作得很好。到目前为止,我在非windows系统上使用Xamarin Studio,因此没有可用的VS


我刚刚意识到在文本编辑器中弄乱packages.config不是我想要的方式。我从npm和bower那里了解到,npm安装-将开发人员保存到作业中,并将包版本写回配置文件。NuGet.exe中有类似的文件吗?

您真的不应该编辑packages.config。包还原并不像您认为的那样。它只下载packages.config中列出的任何缺少的包

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

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

当您打开解决方案并构建时,NuGet将看到包丢失,并将下载它们,就像您已签入它们一样。实际安装已经完成并提交。这就是包恢复所做的一切:不多也不少

如果您使用的是Xamarin Studio,则可以按照以下说明安装NuGet:


你真的不应该编辑packages.config。包还原并不像您认为的那样。它只下载packages.config中列出的任何缺少的包

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

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

当您打开解决方案并构建时,NuGet将看到包丢失,并将下载它们,就像您已签入它们一样。实际安装已经完成并提交。这就是包恢复所做的一切:不多也不少

如果您使用的是Xamarin Studio,则可以按照以下说明安装NuGet:


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

NuGet中没有与NPM的NPM安装-保存等效的版本

当前,当您要在项目中安装新的NuGet软件包时,自动更新packages.config文件的唯一方法是使用IDE(如Visual Studio或Xamarin Studio)并实际安装该软件包。在安装新软件包时,从命令行使用NuGet.exe无法在packages.config文件中添加/删除条目


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

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

NuGet中没有与NPM的NPM安装-保存等效的版本

当前,当您要在项目中安装新的NuGet软件包时,自动更新packages.config文件的唯一方法是使用IDE(如Visual Studio或Xamarin Studio)并实际安装该软件包。在安装新软件包时,从命令行使用NuGet.exe无法在packages.config文件中添加/删除条目


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

很抱歉,您完全错过了我的问题。我知道你所说的一切。我想知道向packages.config添加包的正确方法是什么。在我决定我的项目需要一个新的库时,让我们从nuget添加它。我知道它不会被添加为项目参考。嗯。。这就是我想要的
我很高兴告诉你。将包添加到packages.config的正确方法是使用NuGet进行安装。然后,NuGet将更新该文件。当然,没有任何东西阻止您手动更新文件,但这不是正确的方法。@Kiliman Nuget安装似乎不会以任何方式影响packages.config文件。我运行nuget install xunit.runner.console-SolutionDirectory。并以成功安装到./packages的“xunit.runner.console 2.1.0”结束。但是git diff没有显示任何内容。唯一发生的事情是软件包被下载了。因此,@matt ward说IDE是唯一的方法似乎是正确的。nuget安装与Package Manager控制台中的安装包不同。很遗憾他们给它起了这个名字,因为称它为nuget download更准确。很遗憾nuget确实存在,之前曾与npm合作过,我一直在比较它们。但是我想知道使用nuget和。。。和包管理器控制台。谢谢,对不起,你完全没有回答我的问题。我知道你所说的一切。我想知道向packages.config添加包的正确方法是什么。在我决定我的项目需要一个新的库时,让我们从nuget添加它。我知道它不会被添加为项目参考。嗯。。这就是我想告诉你的。将包添加到packages.config的正确方法是使用NuGet进行安装。然后,NuGet将更新该文件。当然,没有任何东西阻止您手动更新文件,但这不是正确的方法。@Kiliman Nuget安装似乎不会以任何方式影响packages.config文件。我运行nuget install xunit.runner.console-SolutionDirectory。并以成功安装到./packages的“xunit.runner.console 2.1.0”结束。但是git diff没有显示任何内容。唯一发生的事情是软件包被下载了。因此,@matt ward说IDE是唯一的方法似乎是正确的。nuget安装与Package Manager控制台中的安装包不同。很遗憾他们给它起了这个名字,因为称它为nuget download更准确。很遗憾nuget确实存在,之前曾与npm合作过,我一直在比较它们。但是我想知道使用nuget和。。。和包管理器控制台。谢谢