2012-10-21 22 views
0

我應該使用什麼命令從Linux的命令行啓動此C#程序?我已經編譯了它(使用Monodevelop),但我不知道如何從命令行啓動它。從Linux上的命令行啓動C#程序

using System; 
class ExampleClass 
{ 
    static void Main() 
    { 
     Console.WriteLine("Hello, world!"); 
    } 
} 
+0

你已經編譯過了嗎?你在路徑或當前目錄中有二進制文件嗎? – birryree

+3

如果它被編譯,你會['mono mono myprogram.exe'](http://www.mono-project.com/Guide:Running_Mono_Applications) –

+1

此外,爲什麼這個問題被低估?我知道這是一個顯而易見的問題(對於非初學者) - 由於某種原因,這很糟糕嗎? –

回答

5

您需要在Linux上啓動C#(或任何其他.NET)程序的命令行取決於您如何配置Linux系統。

標準答案是運行mono程序,並將可執行程序集的名稱作爲參數傳遞。可執行程序集的名稱通常與項目文件的名稱相同,但您可以輕鬆更改它;只需在編譯完成後查找以.exe結尾的文件即可。它可以在名爲bin\Debugbin\Release或類似的文件夾中找到(這取決於您如何設置項目構建設置)。所以,如果你建立了一個節目叫hello.exe你會去到項目文件夾,然後運行:

~/projects/hello $ mono bin\Debug\hello.exe 

你需要運行mono程序的原因是因爲Linux並不知道,在默認情況下,如何運行。 NET運行時自動。當您在Windows上安裝.NET時,它實際上會更改加載程序的操作系統部分,因此Windows只會自動識別.NET程序並加載運行時。在Linux上,您需要先自己執行mono程序。

如果您在Linux上運行大量託管代碼,還可以將Linux內核配置爲以與Windows相同的方式工作。 Linux支持「雜項二進制格式」,它允許您告訴Linux如何執行非本地Linux格式的二進制文件。這有點高級 - 它可能需要你建立一個定製的內核,但是如果你的Linux發行版有更好的方法去做,我不會感到驚訝。關於這個過程的更多信息可以在這裏找到:

http://www.kernel.org/doc/Documentation/mono.txt