我目前正在將一個工具移植到Linux上。我使用單聲道來達到此目的,並且已經運行了主要工具。然而,這個工具調用另一個程序,它使用C++編寫,並使用g ++在Linux上本地編譯。我在移植過程中遇到了很多困難,但是它已經可以正常工作並運行了(按照預期方式運行./othertool.exe)。從Mono上運行的C#進程運行C++應用程序。運行檢測器錯誤
但是,當試圖在Mono上運行原始工具時,它在啓動其他工具時失敗,並顯示錯誤。
run-detectors: unable to find an interpreter for .../othertool.exe
我不知道爲什麼出現這種情況,有一個Hello World測試時一樣,我設法從C#在Mono調用它來獲得C++程序的運行。我正在運行使用Process類的其他工具(請參閱代碼),該工具在hello world示例中可以正常工作。
var process = new Process
{
StartInfo =
{
FileName = baseDir +
Path.DirectorySeparatorChar +
"tools" +
Path.DirectorySeparatorChar +
"othertool.exe",
Arguments = arguments.ToString(),
UseShellExecute = false
}
};
process.Start();
process.WaitForExit();
任何人都知道爲什麼會發生這種情況?谷歌不會產生任何東西,所以我猜這可能不常見。請隨時索取更多信息或清晰,因爲我可能已經遺漏了一些東西。
使用'mono'爲您'filename'並通過基於CIL(EXE)組件作爲參數 – SushiHangover
這不是CIL,另一個工具是使用g ++在Linux上自然編譯的。我在問題中添加了這個。 – Cameron
'othertool.exe'是一個本地的C++/c可執行文件?你有一個'.exe'內核/外殼擴展註冊?如果是這樣,請嘗試從文件中刪除'.exe'擴展名。 – SushiHangover