msbuild - 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"
解决方案
您正在netcoreapp2.1
从 .NET Framework 项目引用 .NET Core ( ) 项目,这是不可能的。
如果要在 .NET Core 和 .NET Framework 之间共享代码,请将引用的项目改为 .NET Standard(在 csproj 文件中更改TargetFramework
为)。netstandard2.0
推荐阅读
- php - 类型提示返回值和使用语句的问题
- python - 如何在 Facetgrid 中绘制 20 个不同的散点图 - Python (seaborn)
- javascript - 在 JavaScript 中反转字符串:为什么我的答案没有通过测试?
- java - 工厂模式是否可以仅用于一个用户定义的类而不能用于子类
- arrays - 是否有一个谷歌表格公式可以采用一系列单元格,并按字母顺序在一个单独的列中列出所有单元格?
- c# - 在 Blazor 中本地化 DateTime(和数字)
- python - 在 python 3 中解析 Json,从 API 获取电子邮件
- python - 如何使用用户输入停止while循环?
- reactjs - 如何从formik datePicker将dateFormat发送到api
- ios - 找不到 GoogleMobileAds.h 文件