.net - 为什么 NuGet 无法在 TeamBuild 期间恢复单个包,而它在本地运行?

标签 .net tfs nuget tfsbuild

我们正在为我们的企业包使用自定义包存储库。我们的项目之一是 ASP.NET MVC 项目,它也使用官方包存储库来引用 Entity Framework 等包。

最近,一个新的包被上传到官方包存储库,不小心与我们的 ID 相同。我们并没有真正认识到这一点,因为包没有改变,也不需要更新它。

最近,我们开始使用 Team Foundation Server,我为此项目创建了一个新的构建定义。我设法让 NuGet 包恢复与团队构建一起工作,但我也意识到包恢复从官方包源下载了错误的包。所以我通过添加前缀来重命名我们的包。我还从解决方案中卸载了旧的和“错误”的包并安装了新的(我检查过,与现有包不冲突)。

虽然团队构建可以恢复所有包,但它总是无法恢复这个新创建的包。1 在本地构建解决方案工作正常并且所有包都被正确恢复。团队构建失败并显示以下错误消息(对于引用包的每个项目):

"...\Main.nuget\NuGet.targets" (89): "Unable to find version '1.0.1.0' of package 'Foo.Bar'." "...\Main.nuget\NuGet.targets" (89): "The command ""...\Main.nuget\NuGet.exe" install "...\Main\Project\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "...\Main\ " " ended with Code 1."

我尝试在构建服务器上手动运行该命令,它没有任何问题。仅当从团队构建调用时,此命令才会失败。正如我所说,只有我重命名的包(比如:我从存储库中删除了旧包,重命名并上传了新包)导致了这个错误。

我该怎么做才能解决这个问题?

1更新:我尝试发布无法在解决方案中恢复和更新的包的新版本。在此更新期间,另一个包也得到了更新。原来只有我更新的那些包无法恢复。

最佳答案

我终于发现更改构建用户可以解决问题。我以前使用默认设置(“NT-AUTHORITY\NetworkService”)。我创建了一个本地用户(“TFS Build”)并将其配置为构建服务的用户。我还授予了这个用户管理员权限(第一次)。现在可以构建了,这首先解决了我的问题。

但是,问题的真正原因,尤其是为什么某些软件包实际上可以 恢复,仍然让我感到困惑。因此,如果有人能为我提供更多信息,我将不胜感激! :)

关于.net - 为什么 NuGet 无法在 TeamBuild 期间恢复单个包,而它在本地运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547142/

相关文章:

c# - 什么是 WCF RIA 服务?

c# - rpc\\literal SOAP 不支持 namespace 。包装器元素必须是不合格的

TFS:从一台服务器移动到另一台服务器

javascript - 在源代码管理中从 NuGet 包添加 Javascript 文件

azure - 无法加载源 https ://pkgs. dev.azure.com/xxxxx/_packaging/yyyyy/nuget/v3/index.json 的服务索引

c# - 使用 NUnit3 控制台运行测试

.net - 以 100% 的正常运行时间更新应用程序

.net - WPF Windows 是否 Dispose() 它们的 DataContext?

tfs - 使用非 Microsoft 帐户注册 TFS

visual-studio-2010 - TFS 登机政策最佳实践/您的经验