我目前正在寻找NuGet来解决我在TFS中的依赖问题,而我想要做的是托管我自己的NuGet服务器来处理内部依赖。我也想使用NuGet来处理我的第三方依赖。我正在尝试为我们公司设置自动构建,这是我试图用NuGet克服的一个障碍。
另外,作为一个注释,我打算使用NuGet而不将包提交给TFS。我计划使用本文中的方法大纲:
http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html
答案 0 :(得分:11)
很高兴你在TFS上查看NuGet包的 no commit 场景。您可以在这个主题上查看my blog post,然后解释这个概念。
EDIT(2012/06/13):NuGetPowerTools被NuGet的内置包恢复功能所取代。但是,在nuget.targets中更改PackageSources元素的相同概念仍然适用。
你一定要看看David Fowler的NuGetPowerTools。
安装此软件包后,您可以使用Enable-PackageRestore(软件包管理器控制台中新安装的命令),这将添加...
启用程序包还原会将MSBuild目标添加到项目文件中。这些MSBuild目标将在预构建步骤中触发nuget.exe并获取项目所需的任何包。
无需在源代码管理中签入NuGet包,只需要packages.config和这些msbuild任务。
要配置多个不同的包源,您需要设置一些设置以供这些MSBuild任务使用。其中之一是PackageSources。您可以通过编辑NuGet.targets文件来设置它,一旦启用包恢复,您将在 .nuget 文件夹中找到该文件。
关于这些包源,您可以设置不同的内部NuGet库,或者只是设置要使用的不同网络共享。这是需求和偏好的问题,因此您可以选择。您需要做的就是告诉您的msbuild目标使用这些packagesources。您定义它们的顺序也将是查找包的顺序。
祝你好运! 泽维尔答案 1 :(得分:1)
关于已接受的答案和问题的最新消息:
当使用TFS作为没有安装Visual Studio的构建机器时,您可以执行以下操作,以便buildmachine自动使用您的自定义packageSources(在同一解决方案中超过1个),而无需在解决方案中进一步配置packagesources。
通过使用以下样本将NuGet.Config置于根目录(C:\ NuGet.Config)中来创建计算机默认配置:http://docs.nuget.org/docs/reference/nuget-config-file
使用<add key="repositorypath" value="$\External\Packages" />
否则您的包将在C:\ $ \ External \ packages \'中展开。当注释掉时,配置会被链接,并且将使用正确的目录。
配置您需要的包源。
有关其他选项的更多信息(例如用户指定),请参阅:http://docs.nuget.org/docs/reference/nuget-config-file(页面底部)。