2013-01-23 47 views
0

我有一个项目正在编写NUnit测试(例如)。我想将代码提交到git,但我也觉得将NuGet包(NUnit和NUnit.Runner)提交到回购是不好的做法。但是,我不想也打开Package恢复,因为我相信这是用户设置而不是项目设置(IIRC)。将NuGet依赖关系添加到git仓库的正确方法是什么?

将NuGet依赖关系添加到git仓库的正确方法是什么?我认为这将会愉快地获取软件包,但需要开发人员干预。也许只是希望其他开发人员知道将这些缺失的软件包添加回项目中? (这也似乎我们最终也会一直解决.csproj冲突)。

回答

2

如果不能或不愿启用包还原,开发者可以很容易地通过添加命令行的所有包,如this question解释说:

您可以使用nuget.exe来恢复您的软件包。为每个项目运行以下命令。

nuget install packages.config 

您也可以在构建前命令运行此,作为解释here

$(SolutionDir)Tools\nuget install $(ProjectDir)packages.config 

不过说真的,包恢复比较容易,它仅仅需要点击几下。

+0

我忘记了这一点 - 我实际上可以在项目中添加一个脚本(.bat)以重新加载软件包,并向安装指令添加一个自述文件,声明该项目需要安装nuget.exe并在类路径中。 – lucidquiet

+0

@lucidquiet或预编译命令,请参阅编辑。 :-) – CodeCaster

+0

我不想使用软件包恢复,原因有三个。首先,我想从新的结帐的命令行运行一个构建,可能是某种CI的一部分。其次,IIRC软件包还原是一种系统/用户设置,我相信这意味着为一台机器上的用户而不是特定项目打开软件包还原。第三个IIRC关闭软件包恢复并不简单。也许它在VS 2012中更好。我还没有VS 2012,并且大多数与我合作的人都只有2010(现在)。 – lucidquiet

3

您应该只将您的解决方案的packages.config文件添加到您的git仓库中。从它每一个开发者将能够自动安装所需的软件包。

例如,至少在Visual Studio 2012下,您可以在'工具'>'库包管理器'菜单下的'包管理器设置'窗口中选中'允许NuGet在生成期间下载缺失的包'复选框。有了这个选项和packages.config文件你有没有别的事情可做......

相关问题