Visual Studio Build任务在Azure DevOps中失败-我的.Net Framework参考项目是.Net Core?

时间:2019-05-15 21:54:49

标签: msbuild azure-devops azure-pipelines azure-pipelines-build-task

在我自己的生成VM上的Azure DevOps中生成时遇到问题。在VS2017托管代理上会发生相同的错误。

构建.net Framework 4.6.1项目的csproj(在以解决方案文件为目标时也会发生)。它引用了.Net Framework 4.6.1项目。

在我看到的构建日志中

  

1> C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets(1657,5):错误:Project'.. \ MyNetFrameworkReferencedProject。 csproj”的目标是“ netcoreapp2.1”。面向'.NETFramework,Version = v4.6.1'的项目无法引用它。 [C:\ temp \ vsts-2.150.2_work \ 10 \ s \ TheNetFrameworkProjectIAmTryingToBuild.csproj   ]

这是我的构建步骤

enter image description here

.NET Framework 4.6.1项目参考彼此之间相同的错误发生5次

错误的项目packages.json中没有任何内容表明它们针对的是任何netcore软件包

你知道我接下来应该检查什么吗?

编辑-

正在调试运行,看到此错误

##[debug]Exit code: 1
##[debug]Error record:
##[debug]Invoke-VstsTool : Process 'msbuild.exe' exited with code '1'.
##[debug]At C:\temp\vsts-2.150.2\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.151.0\ps_modules\MSBuildHelpers\InvokeFunctions.ps1:115 char:13
##[debug]+             Invoke-VstsTool -FileName $MSBuildPath -Arguments $argume ...
##[debug]+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##[debug]    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
##[debug]    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Invoke-VstsTool
##[debug] 
##[debug]Script stack trace:
##[debug]at Invoke-Tool, C:\temp\vsts-2.150.2\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.151.0\ps_modules\VstsTaskSdk\ToolFunctions.ps1: line 110
##[debug]at Invoke-MSBuild, C:\temp\vsts-2.150.2\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.151.0\ps_modules\MSBuildHelpers\InvokeFunctions.ps1: line 115
##[debug]at Invoke-BuildTools, C:\temp\vsts-2.150.2\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.151.0\ps_modules\MSBuildHelpers\InvokeFunctions.ps1: line 38
##[debug]at <ScriptBlock>, C:\temp\vsts-2.150.2\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.151.0\VSBuild.ps1: line 79
##[debug]at <ScriptBlock>, <No file>: line 1
##[debug]at <ScriptBlock>, <No file>: line 22
##[debug]at <ScriptBlock>, <No file>: line 18
##[debug]at <ScriptBlock>, <No file>: line 1
##[debug]Exception:
##[debug]Microsoft.PowerShell.Commands.WriteErrorException: Process 'msbuild.exe' exited with code '1'.
##[error]Process 'msbuild.exe' exited with code '1'.

我可以使用MSBuild命令减去中央记录器,它会直接在Build VM上成功运行

  

“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ msbuild.exe”“ C:\ temp \ vsts-2.150.2_work \ 10 \ s \ MyProject.csproj “ / nologo / nr:false /p:Version=0.1.31 / p:OutputPath =” bin \ release“ / p:platform =” any cpu“ / p:configuration =” release“ /p:VisualStudioVersion="15.0” / m / p:_MSDeployUserAgent =“ VSTS_AGUID_build_9_0”

2 个答案:

答案 0 :(得分:0)

您正在从.NET Framework项目引用一个.NET Core(netcoreapp2.1)项目,这是不可能的。

如果要在.NET Core和.NET Framework之间共享代码,请将引用的项目更改为.NET Standard(将csproj文件中的TargetFramework更改为netstandard2.0)。

答案 1 :(得分:0)

我有一个名为“ targetFramework”的变量,用于跟踪在构建过程中Net Core API的发布位置。 Nuget Restore任务是拾取此变量并将其用作目标,并还原我的软件包的Net Core版本。