所以,我在我的解决方案上启用了包还原
- 安装包 NuGetEnablePackageRestore
我已经在 TFS 构建服务器上安装并更新了 NuGet
我在 TFS 构建服务器上创建了环境变量
- 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"install "C:\Builds\10......\packages.config"-source ""-o "C:\Builds\10......\packages""以代码 -1 退出。
为安全起见,删除了完整路径。
发现:
我的 TFS 管理员将环境变量设置为 USER 变量!我只是想我会要求她准确地向我展示她是如何配置它的,一旦她这样做了,我就意识到这是错误的。
我不再收到包恢复错误...呜呜!然而,我收到“无法找到版本”错误,这让我认为 TFS 框不知道正确的包来源。我已经验证可以从 TFS 构建框访问包源,并且我还在该框上配置了 NuGet 以引用包共享。
没有包服务器可以做到这一点吗?我一直在为我所有的本地构建使用文件共享,但我想知道当它到达 TFS 框时规则是否会改变。我需要在 Nuget.config 文件中定义我的包源吗?
最佳答案
从 NuGet 2.0 开始,您需要同意 NuGet 在构建期间下载包(隐私问题)。更多信息在这里:http://blog.nuget.org/20120518/package-restore-and-consent.html
NuGet 包管理器 1.8 添加了在 UI 中给予同意的选项。这是工具->选项->包管理器->常规下的第三项:“包还原:允许NuGet在构建期间下载丢失的包”。
或者,您可以通过将 EnableNuGetPackageRestore Environment 变量设置为 true 来表示同意。
关于nuget - 我还不知道的 TFS NuGet 技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855672/