【问题标题】:MSBuild fails due to invalid NuGet version on build server由于构建服务器上的 NuGet 版本无效,MSBuild 失败
【发布时间】:2015-10-15 16:54:00
【问题描述】:

我本周更新到 VS2015,并随之更新了我的网站解决方案中的所有 NuGet 包。

该站点在本地构建并运行良好,但是当我对构建服务器进行门控签入时,当构建失败时,我会得到以下信息

正如您所见,软件包抱怨 NuGet 版本,但我不确定如何在构建服务器上更新 NuGet 版本。我确实拥有服务器的管理员权限,但遵循以下公会描述的:http://blog.stangroome.com/2014/02/04/update-nuget-exe-version-used-by-team-build-2013-package-restore/ 并没有帮助。一方面,我的文件夹实际上是 C:\Program Files\Microsoft Team Foundation Server 11.0\Tools 与指南中描述的 C:\Program Files\Microsoft Team Foundation Server 12.0\Tools 不同,但另外我的文件夹中没有 NuGet.exe。

我已经对 NuGet.exe 进行了完整的硬盘搜索,但在与项目源代码 (.nuget\NuGet.exe) 直接相关的目录之外的任何目录中都找不到它。

我已经在服务器上打开了 Visual Studio,并在“扩展和更新”中更新了 NuGet 版本,希望能解决这个问题,但不幸的是它没有。

关于如何解决屏幕截图中出现的问题/错误的任何想法?

【问题讨论】:

    标签: visual-studio tfs msbuild nuget tfsbuild


    【解决方案1】:

    问题在于您使用的是旧式、自 NuGet 2.7 以来已弃用的“包还原”样式,它基于修改您的 CSProj 文件以包含对 NuGet.targets 文件和 NuGet 副本的引用。 exe 被放入 .nuget 文件夹并最终受源代码控制。

    基本上,构建服务器上的 nuget.exe 版本现在无关紧要 - 您的 CSProj 文件指向您的 .nuget 文件夹中的文件。

    TFS 2013 及更高版本支持自动包还原,无需使用 NuGet.targets 方法。你可以很容易地迁移出来:https://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

    【讨论】:

    • 这是否意味着如果我在 TFS 2012 上我无能为力? (除了升级到 2013)
    • 您可以将源代码管理(.nuget 文件夹中)中的 NuGet.exe 替换为更新的版本。
    猜你喜欢
    • 2017-02-11
    • 2022-08-11
    • 1970-01-01
    • 2016-07-19
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多