2011-11-30 25 views
5

我讀了很多關於使用mono運行.net代碼的問題,但我總是以相同的問題結束。我正在建立一個新的應用程序,所以我最好直接開始並採取好的方向:可以單聲道運行framework.net編譯的應用程序(來自VS env)

我可以在Visual C#Express或Visual Basic Express中開發應用程序,使用它們編譯器從Microsoft環境編譯它並在Linux上使用MONO運行該應用程序。

或者我必須從零開始使用單聲道編譯器(或者將我的MS項目轉換爲單聲道),以便能夠在Linux上使用我的.net應用程序使用Mono框架。

對於我的應用程序開發來說,Linux/Mac的支持並不是必須的,但我想直接從頭開始。

感謝


關於這些API:

我使用的WinForms,加密,全球化,SQLCLIENT但是那可能所有的,你有沒有什麼單專家門診可以告訴我不要一開始就使用。

哦,我用的是我的名字空間的各種東西,如獲取計算機名,登錄用戶名,資源,設置等。

+0

你應該回去接受你問過的舊問題的答案。如果它變得更低,您可能無法讓人們回答您的問題。 –

+0

是的,我不知道爲什麼我有這麼多的問題,沒有回答,對不起...我通常會標記他們:S –

+0

現在我知道了,我幾乎沒有問題,而且我唯一的問題是,他們中的大多數都沒有回答。 。:) –

回答

6

一般來說是的,這工作。

問題不在於重新編譯,而是可用的本機API和庫。如果您添加本地互操作,則您使用的庫也必須在Linux上可用,這顯然不適用於Windows庫。

某些託管庫根本不可用(WPF),或者不完整(WCF)。

單聲道有一個WinForms實現,但它看起來很陌生,因爲它不使用本機控件。這意味着代碼可以在其他平臺上工作,但用戶體驗不會很好。

+0

那就是我的想法,我只是想說清楚 –

+0

My.Computer.Identity.WindowsPrincipal會發生什麼,在另一個平臺上移植它是否正確? SQL本機客戶端(System.Data.SqlClient)可以在Windows以外的其他平臺上工作嗎?我絕對不會在linux上安裝MS Sql Server,但是如果我連一個使用該API的Windows機器都無法連接,那麼mono就沒用了 –

4

.Net語言的所有編譯器都編譯爲標準MSIL,可以通過任何兼容實現(包括Mono)執行。

但是,包含在Microsoft.Net和Visual Studio中的某些程序集不適用於非Windows平臺上的Mono。

相關問題