.NET Core 2.2 빌드 - error MSB4018: The "RazorTagHelper" task failed unexpectedly.
이상하군요, .NET Core 2.0/2.1 프로젝트는 괜찮은데 유독 2.2 프로젝트에서만 빌드 오류가 발생합니다.
Rebuild started...
1>------ Rebuild All started: Project: CoreCoreWin2, Configuration: Debug Any CPU ------
1>C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(28,5): warning NETSDK1138: The target framework 'netcoreapp2.2' is out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy.
1>C:\temp\AzureWebApps\AzureWebTest\CoreCoreWin2\Pages\Index.cshtml.cs(142,36,142,49): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: The "RazorTagHelper" task failed unexpectedly.
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: System.InvalidOperationException: DOTNET_HOST_PATH is not set
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.AspNetCore.Razor.Tasks.DotNetToolTask.get_DotNetPath()
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.AspNetCore.Razor.Tasks.DotNetToolTask.GenerateFullPathToTool()
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.Build.Utilities.ToolTask.ComputePathToTool()
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.Build.Utilities.ToolTask.Execute()
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.AspNetCore.Razor.Tasks.DotNetToolTask.Execute()
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>F:\nuget_root\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
1>Done building project "CoreCoreWin2.csproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
DOTNET_HOST_PATH가 설정되어 있지 않다고 하는데, 실제로 검색해 보면,
Build is failing for Microsoft.NET.Sdk.Razor project
; https://developercommunity2.visualstudio.com/t/Build-is-failing-for-MicrosoftNETSdkR/1251808?preview=true
해결책으로 환경 변수 설정이 필요하다고 합니다.
환경 변수 이름: DOTNET_HOST_PATH
환경 변숫값: dotnet
path라는 이름에서 dotnet.exe가 있는 경로를 지정해야 할 것 같지만,
%ProgramFiles%\dotnet\dotnet.exe
환경 변수 PATH에 경로가 잡혀 있는 경우 dotnet만 있어도 잘 동작합니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]