2012-08-07 25 views
5

所以,我已经启用包在我的解决方案 恢复 - 安装 - 包NuGetEnablePackageRestoreTFS NuGet技巧,我不知道?

我已经安装并在TFS更新的NuGet构建服务器

我创建的TFS环境变量构建服务器 - http://www.centrolutions.com/blog/post/2012/07/05/NuGet-and-TFS-2010-Automated-Build.aspx

我已经删除了所有的packages.config文件,并在每个项目上重新开始。

我已经添加了.nuget文件夹路径构建工作,按照定义的生成代理文件夹

我几乎完成了我的绞索,并计划在在黎明挂自己...是不是我错过了?

忘了TFS生成错误

C:\构建\ 10个.......的NuGet \ nuget.targets(76):包还原默认情况下禁用。为了表示同意,打开Visual Studio选项对话框,点击软件包管理器节点,然后选中'允许NuGet在构建过程中下载缺失的软件包'。您也可以通过将环境变量'EnableNuGetPackageRestore'设置为'true'来表示同意。

C:\构建\ 10 .......的NuGet \ nuget.targets(76):该命令 “” C:\构建\ 10 .......的NuGet \ nuget.exe“install”C:\ Builds \ 10 ...... \ packages.config“-source”“-o”C:\ Builds \ 10 ...... \ packages“”用代码退出 - 1。

删除了完整的安全路径。

DISCOVERY:

我的TFS管理员设置的环境变量为用户变量!我只是想,我会让她告诉我她是如何配置的,只要她这样做,我意识到这是错的。

我不再收到包恢复错误... wooo!但是,我收到“无法找到版本”错误,这让我认为TFS框不知道正确的软件包来源。我已经验证了可以从TFS构建框访问软件包源,并且我已经在该框上配置了NuGet以引用软件包共享。

没有包服务器可以做到这一点吗?我一直在为我所有的本地构建使用文件共享,但是我想知道当规则在碰到TFS框时是否改变。我需要在Nuget.config文件中定义我的软件包源代码吗?

+1

什么问题? 任何错误信息? – 2012-08-07 23:47:10

回答

2

问题最终导致TFS管理员为EnableNuGetPackageRestore环境变量使用了“用户变量”。我永远不会猜到这马上蝙蝠:(。

我去了,看着她再重新配置,并注意到这是错误的......有她纠正它,现在它工作正常。

感谢所有的建议!

+2

和TFS构建控制器/服务必须重新启动e/agent,除非服务器本身已重新启动。 – talisker 2013-02-19 21:36:53

2

从NuGet 2.0开始,您需要同意NuGet在构建期间下载软件包(隐私问题)。更多的信息在这里:http://blog.nuget.org/20120518/package-restore-and-consent.html

NuGet Package Manager 1.8添加了用户界面同意的选项。这是Tools-> Options-> Package Manager-> General下的第3个项目:“Package Restore:允许NuGet在构建过程中下载缺失的软件包”。

或者,您可以通过将EnableNuGetPackageRestore环境变量设置为true来表示同意。

+0

感谢您的建议,但正如我在我的帖子中所说,我创建了环境变量。此外,我无法想象我会必须在构建服务器上打开每个解决方案并重新启用包恢复,构建服务器应该是一个需要最少交互的无头系统 – farina 2012-08-09 16:55:37

1

如果启用了包还原,那么你可以使用< PackageSources在NuGet.targets >元素文件,你在$(SolutionDir).nuget文件夹会发现配置包的来源。

您可以验证这些指向正确的位置,并且是否可以从构建服务器访问该路径?