Unhandled exception. System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'dotnet' with working directory '/home/deck/Code/CsharpProjects/TestProject/TestProject/bin/Debug/net8.0'. No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Microsoft.CodeAnalysis.MSBuild.BuildHostProcessManager.GetBuildHostAsync(BuildHostProcessKind buildHostKind, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.BuildHostProcessManager.GetBuildHostWithFallbackAsync(BuildHostProcessKind buildHostKind, String projectOrSolutionFilePath, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.MSBuildProjectLoader.Worker.LoadProjectFileInfosAsync(String projectPath, DiagnosticReportingOptions reportingOptions, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.MSBuildProjectLoader.Worker.LoadProjectInfosFromPathAsync(String projectPath, DiagnosticReportingOptions reportingOptions, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.MSBuildProjectLoader.Worker.LoadAsync(CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.MSBuildProjectLoader.LoadProjectInfoAsync(String projectFilePath, ProjectMap projectMap, IProgress`1 progress, ILogger msbuildLogger, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.MSBuildProjectLoader.LoadProjectInfoAsync(String projectFilePath, ProjectMap projectMap, IProgress`1 progress, ILogger msbuildLogger, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace.OpenProjectAsync(String projectFilePath, ILogger msbuildLogger, IProgress`1 progress, CancellationToken cancellationToken)
   at RoslynFieldRenamer.Program.Main(String[] args) in /home/deck/Code/CsharpProjects/TestProject/TestProject/Program.cs:line 20
   at RoslynFieldRenamer.Program.<Main>(String[] args)

using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.MSBuild;
using Microsoft.CodeAnalysis.Rename;

namespace RoslynFieldRenamer
{
    class Program
    {
        static async Task Main(string[] args)
        {
            Console.WriteLine(string.Join(",", args));
            string solutionPath = args[0];
            var replacements = Zalipa.Replacements;

            using var workspace = MSBuildWorkspace.Create();
            var project = await workspace.OpenProjectAsync(solutionPath);
            Console.WriteLine(project);
            Console.WriteLine(project.Name);
            var compilation = await project.GetCompilationAsync();

            foreach (var namedTypeSymbol in compilation.GlobalNamespace.GetMembers())
            {
                Console.WriteLine(namedTypeSymbol.Name);
            }

            var targetFields = compilation.GlobalNamespace
                .GetNamespaceTypes()
                .SelectMany(t => t.GetMembers())
                .OfType<IMethodSymbol>();
            var solution = project.Solution;
            foreach (var methodSymbol in targetFields)
            {
                if (replacements.TryGetValue(methodSymbol.Name, out var replacement))
                {
                    solution =
                        await Renamer.RenameSymbolAsync(solution, methodSymbol, replacement, workspace.Options);
                }
            }

            workspace.TryApplyChanges(solution);
            Console.WriteLine("Field renamed successfully.");
        }
    }

    static class Extensions
    {
        public static IEnumerable<INamedTypeSymbol> GetNamespaceTypes(this INamespaceSymbol namespaceSymbol)
        {
            foreach (var member in namespaceSymbol.GetMembers())
            {
                if (member is INamespaceSymbol ns)
                {
                    foreach (var type in GetNamespaceTypes(ns))
                    {
                        yield return type;
                    }
                }
                else if (member is INamedTypeSymbol namedTypeSymbol)
                {
                    yield return namedTypeSymbol;
                }
            }
        }
    }
}

На Windows работает, а на Arch Linux не работает.