我不知道的TFS NuGet技巧?

时间:2012-08-07 23:44:11

标签: nuget tfsbuild

所以,我已经在我的解决方案上启用了包恢复功能   - Install-Package NuGetEnablePackageRestore

我在TFS Build Server上安装并更新了NuGet

我在TFS Build Server上创建了环境变量   - http://www.centrolutions.com/blog/post/2012/07/05/NuGet-and-TFS-2010-Automated-Build.aspx

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

我已将.nuget文件夹路径添加到构建作业,以及已定义的构建代理文件夹

我几乎已经完成了我的套索,并计划在黎明时挂起自己......我有什么遗失的吗?

忘记提出TFS构建错误

C:\ Builds \ 10 ....... nuget \ nuget.targets(76):默认情况下禁用包恢复。要获得同意,请打开Visual Studio选项对话框,单击“程序包管理器”节点,然后选中“允许NuGet在构建期间下载缺少的程序包”。您也可以通过设置环境变量' EnableNuGetPackageRestore'来同意。到了' true'。

C:\ Builds \ 10 ....... nuget \ nuget.targets(76):命令"" C:\ Builds \ 10 ....... nuget \ nuget.exe"安装" C:\ Builds \ 10 ...... \ packages.config" -source"" -o" C:\ Builds \ 10 ...... \ packages""退出代码-1。

删除了完整的安全路径。

DISCOVERY:

我的TFS管理员将环境变量设置为USER变量!我只是觉得我会让她告诉我她是如何配置的,一旦她这样做,我就意识到这是错误的。

我不再收到包恢复错误...哇!然而,我得到了#34;无法找到版本"错误,这让我觉得TFS盒子不知道正确的包源。我已经验证了可以从TFS构建框访问包源,我也在该框中配置了NuGet以引用包共享。

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

3 个答案:

答案 0 :(得分:2)

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

NuGet Package Manager 1.8添加了在UI中提供同意的选项。这是Tools-> Options-> Package Manager-> General下的第3项:“Package Restore:允许NuGet在构建期间下载丢失的包”。

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

答案 1 :(得分:2)

问题最终是TFS管理员为EnableNuGetPackageRestore环境变量使用了“用户变量”。我永远不会猜到这一点:(。

我去看了她再次配置它,并注意到它是错的......如果她纠正了它,现在它工作正常。

感谢您的所有建议!

答案 2 :(得分:1)

如果启用了包还原,则可以使用您在$(SolutionDir).nuget文件夹中找到的NuGet.targets文件中的< PackageSources> 元素配置包源。

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

相关问题