TeamCity 构建失败,VS 2015 构建成功
TeamCity build fails, VS 2015 build succeeds
我有一个项目,在 VS 中构建时会成功:
PM> dotnet build -f net452
Project Core.RecordingProvider (.NETFramework,Version=v4.5.2) will be compiled because expected outputs are missing
Compiling Core.RecordingProvider for .NETFramework,Version=v4.5.2
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:01.0807947
但是,当该项目在 TeamCity 中构建时,由于我完全不清楚的原因而失败:
[11:37:40]Step 1/4: -- Restore -- (.NET Core (dotnet)) (5s)
[11:37:40]Starting: "C:\Program Files\dotnet\dotnet.exe" restore
[11:37:40]in directory: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b
[11:37:41]log : Restoring packages for C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\Core.RecordingProvider.Tests\project.json...
[11:37:41]log : Restoring packages for C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider.FunctionalTests\project.json...
[11:37:41]log : Restoring packages for C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.json...
[11:37:44]log : Writing lock file to disk. Path: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider.FunctionalTests\project.lock.json
[11:37:44]log : C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider.FunctionalTests\project.json
[11:37:44]log : Restore completed in 2199ms.
[11:37:44]log : Writing lock file to disk. Path: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\Core.RecordingProvider.Tests\project.lock.json
[11:37:44]log : C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\Core.RecordingProvider.Tests\project.json
[11:37:44]log : Restore completed in 2463ms.
[11:37:45]log : Writing lock file to disk. Path: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.lock.json
[11:37:45]log : C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.json
[11:37:45]log : Restore completed in 3556ms.
[11:37:45]Process exited with code 0
[11:37:45]Step 2/4: -- Build -- (.NET Core (dotnet)) (1s)
[11:37:45]Starting: "C:\Program Files\dotnet\dotnet.exe" build Core.RecordingProvider/src/Core.RecordingProvider --framework net452 --configuration Debug --build-profile --no-incremental
[11:37:45]in directory: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b
[11:37:46]Project Core.RecordingProvider (.NETFramework,Version=v4.5.2) will be compiled because project is not safe for incremental compilation. Use --build-profile flag for more information.
[11:37:46]Compiling Core.RecordingProvider for .NETFramework,Version=v4.5.2
[11:37:46]C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.json(8,33): error NU1001: The dependency System.Data could not be resolved.
[11:37:46]
[11:37:46]Compilation failed.
[11:37:46] 0 Warning(s)
[11:37:46] 1 Error(s)
[11:37:46]
[11:37:46]Time elapsed 00:00:00.0319611
[11:37:46]
[11:37:46]Process exited with code 1
[11:37:47]Step -- Build -- (.NET Core (dotnet)) failed
此错误 NU1001: The dependency System.Data could not be resolved
是什么,仅在使用 TC 构建时出现,我该如何解决?
一个多小时的研究 Google 没有发现任何有用的东西,甚至没有任何可能有用的提示。
这是 project.json,以防有用。
{
"version": "1.1.0-*",
"dependencies": {
"Microsoft.Azure.DocumentDB": "1.11.1",
"WindowsAzure.Storage": "8.0.1"
},
"frameworks": {
"net452" : {}
}
}
谢谢
编辑以显示 TC 上的 dotnet 还原步骤
编辑 2 -- 从源代码中删除 project.lock.json,并重建..更新了 TC 输出。
答案原来是我的 TeamCity 服务器没有所有的 DotNetFrameworkTargetingPacks。特别是,它确实有 4.0、4.5 和 4.6 包,但缺少 4.5.1、4.5.2、4.6.1 和 4.6.2 包。
我是从这个网站下载的:http://getdotnet.azurewebsites.net/target-dotnet-platforms.html
这 4 包是
.NET Framework 4.6.2 开发包
.NET Framework 4.6.1 目标包
.NET Framework 4.5.2 开发包
.NET Framework 4.5.1 开发包
在我安装了全部 4 个之后,我重新启动了 TC 服务器,重新运行 构建,它们 运行 完成。
我有一个项目,在 VS 中构建时会成功:
PM> dotnet build -f net452
Project Core.RecordingProvider (.NETFramework,Version=v4.5.2) will be compiled because expected outputs are missing
Compiling Core.RecordingProvider for .NETFramework,Version=v4.5.2
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:01.0807947
但是,当该项目在 TeamCity 中构建时,由于我完全不清楚的原因而失败:
[11:37:40]Step 1/4: -- Restore -- (.NET Core (dotnet)) (5s)
[11:37:40]Starting: "C:\Program Files\dotnet\dotnet.exe" restore
[11:37:40]in directory: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b
[11:37:41]log : Restoring packages for C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\Core.RecordingProvider.Tests\project.json...
[11:37:41]log : Restoring packages for C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider.FunctionalTests\project.json...
[11:37:41]log : Restoring packages for C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.json...
[11:37:44]log : Writing lock file to disk. Path: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider.FunctionalTests\project.lock.json
[11:37:44]log : C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider.FunctionalTests\project.json
[11:37:44]log : Restore completed in 2199ms.
[11:37:44]log : Writing lock file to disk. Path: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\Core.RecordingProvider.Tests\project.lock.json
[11:37:44]log : C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\Core.RecordingProvider.Tests\project.json
[11:37:44]log : Restore completed in 2463ms.
[11:37:45]log : Writing lock file to disk. Path: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.lock.json
[11:37:45]log : C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.json
[11:37:45]log : Restore completed in 3556ms.
[11:37:45]Process exited with code 0
[11:37:45]Step 2/4: -- Build -- (.NET Core (dotnet)) (1s)
[11:37:45]Starting: "C:\Program Files\dotnet\dotnet.exe" build Core.RecordingProvider/src/Core.RecordingProvider --framework net452 --configuration Debug --build-profile --no-incremental
[11:37:45]in directory: C:\BuildAgents\Agent-5\work\e1ee23b6a628140b
[11:37:46]Project Core.RecordingProvider (.NETFramework,Version=v4.5.2) will be compiled because project is not safe for incremental compilation. Use --build-profile flag for more information.
[11:37:46]Compiling Core.RecordingProvider for .NETFramework,Version=v4.5.2
[11:37:46]C:\BuildAgents\Agent-5\work\e1ee23b6a628140b\Core.RecordingProvider\src\Core.RecordingProvider\project.json(8,33): error NU1001: The dependency System.Data could not be resolved.
[11:37:46]
[11:37:46]Compilation failed.
[11:37:46] 0 Warning(s)
[11:37:46] 1 Error(s)
[11:37:46]
[11:37:46]Time elapsed 00:00:00.0319611
[11:37:46]
[11:37:46]Process exited with code 1
[11:37:47]Step -- Build -- (.NET Core (dotnet)) failed
此错误 NU1001: The dependency System.Data could not be resolved
是什么,仅在使用 TC 构建时出现,我该如何解决?
一个多小时的研究 Google 没有发现任何有用的东西,甚至没有任何可能有用的提示。
这是 project.json,以防有用。
{
"version": "1.1.0-*",
"dependencies": {
"Microsoft.Azure.DocumentDB": "1.11.1",
"WindowsAzure.Storage": "8.0.1"
},
"frameworks": {
"net452" : {}
}
}
谢谢
编辑以显示 TC 上的 dotnet 还原步骤
编辑 2 -- 从源代码中删除 project.lock.json,并重建..更新了 TC 输出。
答案原来是我的 TeamCity 服务器没有所有的 DotNetFrameworkTargetingPacks。特别是,它确实有 4.0、4.5 和 4.6 包,但缺少 4.5.1、4.5.2、4.6.1 和 4.6.2 包。
我是从这个网站下载的:http://getdotnet.azurewebsites.net/target-dotnet-platforms.html
这 4 包是 .NET Framework 4.6.2 开发包 .NET Framework 4.6.1 目标包 .NET Framework 4.5.2 开发包 .NET Framework 4.5.1 开发包
在我安装了全部 4 个之后,我重新启动了 TC 服务器,重新运行 构建,它们 运行 完成。