在我自己的生成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 ]
这是我的构建步骤
.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”
答案 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版本。