From 88e3d9b6dc1818485ac721d9b8d375d4de7c70e0 Mon Sep 17 00:00:00 2001 From: PetSerAl Date: Wed, 20 Nov 2024 08:11:15 +0300 Subject: [PATCH] Use current `dotnet` host instead of global (#1387) Use current `dotnet` binary from `DOTNET_HOST_PATH` instead of just `dotnet`. Reasons: 1. Global (in `PATH`) may not exist (when used _Binaries_, but not _Installers_). 2. Global can have different runtime version. 3. Consistent with outer tools (`csc` for example). https://github.com/dotnet/roslyn/blob/324fd25331c969cd742ba68eee09ffd4b6fd29e3/src/Compilers/Shared/RuntimeHostInfo.cs#L61-L64 4. It is documented to be used for that purpose. https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-environment-variables#dotnet_host_path --- Src/CSharpier.MsBuild/build/CSharpier.MsBuild.targets | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Src/CSharpier.MsBuild/build/CSharpier.MsBuild.targets b/Src/CSharpier.MsBuild/build/CSharpier.MsBuild.targets index b9f292b3b..10d4787a6 100644 --- a/Src/CSharpier.MsBuild/build/CSharpier.MsBuild.targets +++ b/Src/CSharpier.MsBuild/build/CSharpier.MsBuild.targets @@ -4,6 +4,8 @@ net8.0 net8.0 $(MSBuildThisFileDirectory)../tools/csharpier/$(CSharpier_FrameworkVersion)/dotnet-csharpier.dll + $(DOTNET_HOST_PATH) + dotnet $(CSharpierArgs) --check $(CSharpierArgs) --loglevel $(CSharpier_LogLevel) $(TargetFramework) @@ -23,7 +25,7 @@ StdOutEncoding="utf-8" StdErrEncoding="utf-8" IgnoreExitCode="true" - Command="dotnet "$(CSharpierDllPath)" $(CSharpierArgs) --no-msbuild-check --compilation-errors-as-warnings "$(MSBuildProjectDirectory)" > $(NullOutput) " /> + Command=""$(CSharpier_dotnet_Path)" exec "$(CSharpierDllPath)" $(CSharpierArgs) --no-msbuild-check --compilation-errors-as-warnings "$(MSBuildProjectDirectory)" > $(NullOutput) " />