运行没有.exe扩展名的外部应用程序

kja*_*llo 17 .net c# process

我知道如何在C#中运行外部应用程序System.Diagnostics.Process.Start(executableName);但是如果我想运行的应用程序具有Windows无法识别为可执行文件扩展名的扩展.就我而言application.bin.

mdb*_*mdb 31

关键是在启动流程之前将Process.StartInfo.UseShellExecute属性设置为false,例如:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"c:\tmp\test.bin";
p.StartInfo.UseShellExecute  = false;
p.Start();
Run Code Online (Sandbox Code Playgroud)

这将直接启动该过程:该文件将被视为可执行文件,而不是通过"让我们尝试找出指定文件扩展名的可执行文件"shell逻辑.

实现相同结果的另一种语法可能是:

var processStartInfo = new ProcessStartInfo
{
    FileName = @"c:\tmp\test.bin",
    UseShellExecute = false
};
Process.Start(processStartInfo);
Run Code Online (Sandbox Code Playgroud)