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 版本。
我在自己的构建 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 版本。