首页 > 解决方案 > Azure DevOps 中的 Visual Studio 构建任务失败 - 我的 .Net Framework 引用的项目是 .Net Core?

问题描述

在我自己的构建 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): 错误:项目 '..\MyNetFrameworkReferencedProject.csproj' 目标'netcoreapp2.1'。它不能被以“.NETFramework,Version=v4.6.1”为目标的项目引用。[C:\temp\vsts-2.150.2_work\10\s\TheNetFrameworkProjectIAmTryingToBuild.csproj]

这是我的构建步骤

在此处输入图像描述

.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"

标签: msbuildazure-devopsazure-pipelinesazure-pipelines-build-task

解决方案


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

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


推荐阅读