TeamCity build fails, VS 2015 build succeeds

孤街醉人 提交于 2019-12-12 01:47:43

问题


I have a project which, when built in VS will succeed:

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

But, when that project is built in TeamCity, it fails for reasons which are not at all clear to me:

[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

What is this error NU1001: The dependency System.Data could not be resolved that only occurs when building with TC, and how do I resolve it?

More than an hours worth of research on Google hasn't turned up anything useful, not even a hint of something that might be useful.

Here's the project.json, in case that turns out to be useful.

{
    "version": "1.1.0-*",

    "dependencies": {
        "Microsoft.Azure.DocumentDB": "1.11.1",
        "WindowsAzure.Storage": "8.0.1"
    },

    "frameworks": {
        "net452" : {}
    }
}

Thanks

Edited to show the dotnet restore step on TC

Edit 2 -- removed project.lock.json from source, and rebuild.. updated TC output.


回答1:


The answer turned out to be that my TeamCity server did not have all the DotNetFrameworkTargetingPacks. In particular, it did have the 4.0, 4.5, and 4.6 packs, but was missing the packs for 4.5.1, 4.5.2, 4.6.1, and 4.6.2.

I downloaded them from this website: http://getdotnet.azurewebsites.net/target-dotnet-platforms.html

The 4 packs were .NET Framework 4.6.2 Developer Pack .NET Framework 4.6.1 Targeting Pack .NET Framework 4.5.2 Developer Pack .NET Framework 4.5.1 Developer Pack

After I installed all 4 of them, I rebooted the TC Server, re-ran the builds, and they ran to completion.



来源:https://stackoverflow.com/questions/42378626/teamcity-build-fails-vs-2015-build-succeeds

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!