使用Process.Start运行.NET 6 DLL时出现启动异常问题求助
问题原因与解决方案
你这段代码的核心错误是错误地将完整命令(包含DLL路径)放到了FileName属性中。Process.StartInfo.FileName仅需要指定可执行程序的路径(这里就是dotnet),而DLL路径和运行参数都应该放在Arguments属性里。
修正后的代码如下:
Process process = new Process(); // 仅指定可执行程序dotnet process.StartInfo.FileName = "dotnet"; // 把DLL路径和参数都放到Arguments中 process.StartInfo.Arguments = "myApp.dll testParam"; // 工作目录设置为DLL所在的路径(确保相对路径能被正确解析) process.StartInfo.WorkingDirectory = "myPath"; process.StartInfo.UseShellExecute = false; process.Start();
如果担心相对路径的解析问题,也可以直接使用DLL的绝对路径,这样无需依赖WorkingDirectory也能正常运行:
Process process = new Process(); process.StartInfo.FileName = "dotnet"; // 使用绝对路径指定DLL process.StartInfo.Arguments = @"C:\full\path\to\myApp.dll testParam"; process.StartInfo.UseShellExecute = false; process.Start();
内容的提问来源于stack exchange,提问作者KUMI
相关产品推荐
相关产品推荐

