Visual Studio Azure DevOps 中的构建任务失败 - 我的 .Net Framework 引用项目是 .Net Core?

Visual Studio Build task fails in Azure DevOps - my .Net Framework referenced project is .Net Core?

我在自己的构建 VM 上构建 Azure DevOps 时遇到问题。在 VS2017 托管代理上发生同样的错误。

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

在我看到的构建日志中

1>C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin\Microsoft.Common.CurrentVersion.targets(1657,5): error : Project '..\MyNetFrameworkReferencedProject.csproj' targets 'netcoreapp2.1'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.6.1'. [C:\temp\vsts-2.150.2_work\s\TheNetFrameworkProjectIAmTryingToBuild.csproj ]

这是我的构建步骤

同样的错误出现5次互相.Net Framework 4.6.1项目参考

错误项目中没有任何内容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.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.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.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.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.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 Studio17\BuildTools\MSBuild.0\Bin\msbuild.exe" "C:\temp\vsts-2.150.2_work\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"

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

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

我有一个名为 "targetFramework" 的变量,我用它来追踪 Net Core API 作为我构建的一部分发布的位置。 Nuget Restore 任务正在获取这个变量并将其用作目标并恢复我的包的 Net Core 版本。