【问题标题】:Nuget Installer task fails in tfs 2017 buildsNuget 安装程序任务在 tfs 2017 版本中失败
【发布时间】:2017-10-20 11:16:44
【问题描述】:

我们正在使用 Nuget Installer 步骤来恢复 TFS 构建中丢失的 nuget 包,此步骤失败并出现以下错误:

E:\Builds\_tasks\NuGetInstaller_333b11bd-d341-40d9-afcf-b32d5ce6f23b\0.2.29\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe restore -NonInteractive E:\Builds\test .sln MSBuild 自动检测:使用来自“C:\Windows\Microsoft.NET\Framework\v3.5”的 msbuild 版本“3.5”。 E:\Builds\test.sln 解析解决方案文件时出错:系统找不到指定的文件。 (来自 HRESULT 的异常:0x80070002) 错误:E:\Builds\Agent2017Update1_tasks\NuGetInstaller_333b11bd-d341-40d9-afcf-b32d5ce6f23b\0.2.29\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe 失败,返回码:1 软件包安装失败

错误消息似乎令人困惑,因为指定的文件存在于构建代理中。

TFS 构建代理版本:2.112.0 TFS 版本:TFS 2017 更新 1

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    在高级选项中,将 NuGet 的版本更改为 3.5。在过去 2 周里,我遇到了一些奇怪的问题,3.3 的作用与您所遇到的类似,而切换到 3.5 的工作正常。

    希望这对你也有用=D

    【讨论】:

    • 使用 Nuget 版本 3.5.0 我们也会遇到同样的错误,还有其他解决方法吗?
    • 这解决了我的确切问题。谢谢!
    • @Santhosh,抱歉不知道其他人 =(
    【解决方案2】:

    这似乎是因为您的路径(您的构建代理)中的msbuild.exe 是版本3.5。 MSBuild 3.5 没有 nuget 尝试动态加载的两个 .dll(Microsoft.Build.dllMicrosoft.Build.Framework.dll)。

    解决此问题的解决方案,请确保 NuGet.exe 使用 MSBuild 4.0 或更高版本。这可以通过确保 MSBuild 4.0 或更高版本是第一个在您的路径中解决或通过传递 -msbuildversion 选项。例如,使用 MSBuild 14.0(随 Visual 工作室 2015)。

    nuget.exe pack MyProj.csproj -msbuildversion 14.0
    

    更多细节请参考这个类似问题nuget pack fails when MSBuild version resolved to MSBuild 3.5

    【讨论】:

      猜你喜欢
      • 2022-01-27
      • 1970-01-01
      • 2018-05-17
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多