【问题标题】:VSTS build on clean due to dotnet version由于 dotnet 版本,VSTS 建立在干净的基础上
【发布时间】:2018-05-31 16:46:44
【问题描述】:

我的 VSTS 构建最近在执行 clean 时开始失败,看起来这与它正在运行的 dotnet 版本有关。如果我执行dotnet --version,我会得到以下输出:

2018-05-31T16:40:51.0191791Z 2.1.300-rc1-008673

为什么构建代理运行 RC 版本的 dotnet?如何将这个问题修复为已发布的版本?

查看为代理构建图像的脚本我遇到了这个更改,假设停止安装预览/rc 版本 - https://github.com/Microsoft/vsts-image-generation/commit/e9c0aec89ad797d1985a76ab262349b943b02c34 但目前正在为我构建的代理具有 rc 版本?

这是当我们点击运行 dotnet clean 的干净阶段时来自 VSTS 的错误日志

2018-06-01T10:35:05.2388624Z ========================================
2018-06-01T10:35:05.2389045Z Clean
2018-06-01T10:35:05.2389205Z ========================================
2018-06-01T10:35:05.2389542Z Executing task: Clean
2018-06-01T10:35:05.2389744Z Microsoft (R) Build Engine version 15.7.177.53362 for .NET Core
2018-06-01T10:35:05.2389940Z Copyright (C) Microsoft Corporation. All rights reserved.
2018-06-01T10:35:05.2390085Z 
2018-06-01T10:35:05.2390243Z Build started 6/1/2018 10:35:04 AM.
2018-06-01T10:35:05.4567633Z      1>Project "D:\a\1\s\EvilCorp.Shopping.sln" on node 1 (Clean target(s)).
2018-06-01T10:35:05.4576926Z      1>ValidateSolutionConfiguration:
2018-06-01T10:35:05.4577117Z          Building solution configuration "Debug|Any CPU".
2018-06-01T10:35:05.4577301Z        ValidateProjects:
2018-06-01T10:35:05.4577538Z          The project "EvilCorp.Shopping.CloudFormation" is not selected for building in solution configuration "Debug|Any CPU".
2018-06-01T10:35:05.6568982Z      1>Project "D:\a\1\s\EvilCorp.Shopping.sln" (1) is building "D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\EvilCorp.Shopping.BitCoinMining.Tests.csproj" (2) on node 1 (Clean target(s)).
2018-06-01T10:35:05.6570131Z      2>_CheckForNETCoreSdkIsPreview:
2018-06-01T10:35:05.6570885Z          You are working with a preview version of the .NET Core SDK. You can define the SDK version via a global.json file in the current project. More at https://go.microsoft.com/fwlink/?linkid=869452
2018-06-01T10:35:05.6571157Z        CoreClean:
2018-06-01T10:35:05.6571366Z          Creating directory "obj\Debug\netcoreapp2.0\".
2018-06-01T10:35:05.6573173Z      2>C:\Program Files\dotnet\sdk\2.1.300-rc1-008673\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(197,5): error : Assets file 'D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\EvilCorp.Shopping.BitCoinMining.Tests.csproj]
2018-06-01T10:35:05.6574793Z      2>Done Building Project "D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\EvilCorp.Shopping.BitCoinMining.Tests.csproj" (Clean target(s)) -- FAILED.
2018-06-01T10:35:06.3974865Z      1>Project "D:\a\1\s\EvilCorp.Shopping.sln" (1) is building "D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\EvilCorp.Shopping.BitCoinMining.csproj" (3) on node 2 (Clean target(s)).
2018-06-01T10:35:06.3976276Z      3>_CheckForNETCoreSdkIsPreview:
2018-06-01T10:35:06.3976868Z          You are working with a preview version of the .NET Core SDK. You can define the SDK version via a global.json file in the current project. More at https://go.microsoft.com/fwlink/?linkid=869452
2018-06-01T10:35:06.4013004Z        CoreClean:
2018-06-01T10:35:06.4013409Z          Creating directory "obj\Debug\netcoreapp2.0\".
2018-06-01T10:35:06.4033872Z      3>C:\Program Files\dotnet\sdk\2.1.300-rc1-008673\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(197,5): error : Assets file 'D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\EvilCorp.Shopping.BitCoinMining.csproj]
2018-06-01T10:35:06.4039865Z      3>Done Building Project "D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\EvilCorp.Shopping.BitCoinMining.csproj" (Clean target(s)) -- FAILED.
2018-06-01T10:35:06.4237898Z      1>Done Building Project "D:\a\1\s\EvilCorp.Shopping.sln" (Clean target(s)) -- FAILED.
2018-06-01T10:35:06.4315334Z 
2018-06-01T10:35:06.4317290Z Build FAILED.
2018-06-01T10:35:06.4320946Z 
2018-06-01T10:35:06.4322792Z        "D:\a\1\s\EvilCorp.Shopping.sln" (Clean target) (1) ->
2018-06-01T10:35:06.4324451Z        "D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\EvilCorp.Shopping.BitCoinMining.Tests.csproj" (Clean target) (2) ->
2018-06-01T10:35:06.4324845Z        (ResolvePackageAssets target) -> 
2018-06-01T10:35:06.4325763Z          C:\Program Files\dotnet\sdk\2.1.300-rc1-008673\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(197,5): error : Assets file 'D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [D:\a\1\s\test\EvilCorp.Shopping.BitCoinMining.Tests\EvilCorp.Shopping.BitCoinMining.Tests.csproj]
2018-06-01T10:35:06.4326110Z 
2018-06-01T10:35:06.4326235Z 
2018-06-01T10:35:06.4326444Z        "D:\a\1\s\EvilCorp.Shopping.sln" (Clean target) (1) ->
2018-06-01T10:35:06.4326731Z        "D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\EvilCorp.Shopping.BitCoinMining.csproj" (Clean target) (3) ->
2018-06-01T10:35:06.4327177Z          C:\Program Files\dotnet\sdk\2.1.300-rc1-008673\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(197,5): error : Assets file 'D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\EvilCorp.Shopping.BitCoinMining.csproj]
2018-06-01T10:35:06.4327515Z 
2018-06-01T10:35:06.4327682Z     0 Warning(s)
2018-06-01T10:35:06.4327863Z     2 Error(s)
2018-06-01T10:35:06.4327987Z 
2018-06-01T10:35:06.4328151Z Time Elapsed 00:00:01.51

【问题讨论】:

  • 您使用哪种代理?托管代理、托管 VS2017 代理还是私人代理?您使用哪个代理版本?您是否在Get sources 步骤中将clean 参数设置为true?排队构建时遇到了什么错误?
  • 我们使用 Hosted VS2017 代理,clean 设置为 false,但我们在蛋糕构建脚本中使用 dotnet clean
  • 错误提示Assets file 'D:\a\1\s\src\EvilCorp.Shopping.BitCoinMining\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.你检查了吗?
  • @CeceDong-MSFT 似乎很奇怪,我现在需要在清理之前运行包还原?而这才刚刚开始发生

标签: .net .net-core azure-devops azure-pipelines


【解决方案1】:

我这边测试过,Hosted VS 2017安装的是dotnet版本2.1.300-rc1-008673

要使用其他版本的 dotnet sdk,您可以按照以下步骤操作:

  1. 创建一个类似下面内容的global.json文件,并将其签入VSTS。

{ "sdk": { "version": "2.1.200" } }

  1. Working folder 指定到global.json 文件所在的位置:

  1. 运行命令:

您可以在第一步中指定您要使用的 dotnet sdk 版本,并确保您要使用的版本已存在于 Hosted VS 2017 中。

【讨论】:

  • 如果您执行dotnet --info,您也会看到安装了其他版本...我认为修复 sdk 版本可以解决我的问题(我希望)
猜你喜欢
  • 1970-01-01
  • 2017-08-14
  • 2019-03-28
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多