关键是在启动过程之前将Process.StartInfo.UseShellExecute属性设置为false。接着使用start即可启动非exe文件作为可执行文件运行。

 

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"c:\test\test.extname";
p.StartInfo.UseShellExecute  = false;
p.Start();

或者

var processStartInfo = new ProcessStartInfo
{
    FileName = @"c:\test\test.extname",
    UseShellExecute = false
};
Process.Start(processStartInfo);

或者

var proc = new Process 
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "test.extname",
        Arguments = "参数",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};

proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
   //输出执行结果
    string line = proc.StandardOutput.ReadLine();

}