mono編譯cs
1. 在ubuntu下mono編譯一個github上的C#項目出現CS0518的錯誤 提示沒有.NET4 runtime
mono能支持的.net庫是有限的,比如反射就只有很有限的支持
所以win下面能開發編譯運行的.net代碼在mono下不一定可以編譯通過
2. 如何在linux系統中編譯安裝Mono筆記
Mono聲稱支持Linux、Solaris、Free BSD和MS Windows;除了Intel x86系列的CPU(486,各類Pentium等)之外,據說還要支持Sparc、PowerPC和StrongArm處理器。 下面就來看看如何在Linux上運行Mono。
命令行應用
下載軟體,執行下面的命令安裝所有RPM:rpm -ivh *.rpm
安裝完成後,所有基本的動態執行庫,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被復制到/usr/lib下。接下來,在Linux文本編輯器中輸入下面的內容,把文件保存為HelloMono.cs:
class HelloMono
{
public static void Main(string[ ] args)
{ System.Console.WriteLine("Hello Mono");
}
}
執行下面的命令編譯C#文件:
mcs HelloMono.cs
mcs是Mono的C#命令行編譯器。與MS .NET SDK的csc編譯器相似,mcs也有很多命令行選項
。上面的命令將生成可執行文件HelloMono.exe。注意這個執行文件不是Linux執行文件,
而是一個.NET執行文件,或者說,這個文件的可執行代碼形式是中間語言(IL,Intermed
iate Language)。要運行這個執行文件,必須執行如下命令:
mono HelloMono.exe
Linux控制台上將顯示出"Hello Mono"。關於mcs和Mono的更多說明,請執行man mcs或man
mono參考其man文檔。
3. mono的語言
公共語言基礎(Common Language Infrastructure,CLI),又叫公共語言運行時(Common Language Runtime),已由Mono實現。該運行時用於執行已編譯的.NET應用程序。公共語言基礎已被ECMA定義為標准ECMA-335。要運行一個.NET應用程序,你必須使用相應的參數調用運行時。
在ECMA-335的第六章詳細說明了公共語言規范(Common Language Specification,CLS)並定義了提供給公共語言基礎的介面,例如對於枚舉類型的隱含表示類型的協定。 Mono的編譯器負責生成符合公共語言規范的映射代碼,即公共中間語言(Common Intermediate Language,CIL)。 Mono的運行時將運行這類代碼。 ECMA標准先前還定義了一個符合公共語言規范的程序庫作為應用框架。
4. mono for windows編譯出來的C#程序能否脫離.net運行
mono編譯出來的不是可以脫離.NET的程序,而是把需要用到的.NET框架打包到EXE內。從發布上來說是方便,但運行效率上還不如已經裝在機器上的.NET框架高。.NET會有常駐內存和在程序首次運行時本地編譯提高程序第二次啟動的時間,這些機制mono估計都沒有。
5. 最近開始接觸C#,遇到mono使用問題
我下載了很多rpm文件,然後使用命令安裝了。我看資料說默認安裝的mono是在usr/local/lib下面但是我沒有看到
但是我可以使用mono命令,而已。在linux建立一個簡單控制台程序輸出一個hello world。是成功
然後我就是開始把我windows上的一個很簡單winform運行到linux。但是一直報錯:大概是這樣的,類型初始化錯誤,載入dll的時候錯誤,是那個gdi
6. 你好,我看到你回答別人的關於Mono 的問題找到你的,我想問個問題:安裝後沒有mono編譯的選項,怎樣用mono
參考答案: 清水出芙蓉,天然去雕飾。
7. 我在Windows的.NET Framework上寫了一個項目,現在通過Mono移植到Linux上,無法運行
可以。
來自作者:仙人掌工作室
眾所周知,C#是Microsoft推出的.NET語言,只能在.NET平台上運行,例如Win 9x、ME、N
T、2000、XP和Win CE之類的操作系統。但是,現在卻有了一個叫做Mono的項目,它的目標
就是把.NET及其編程語言移植到非Windows的平台上。現在,C#是唯一被移植到非Windows
平台的.NET語言。
在任何一個平台(操作系統+硬體體系)上,編寫和運行程序的三個最根本的需求是庫、編
譯器/解釋器、運行環境。庫以類和方法(函數)的形式提供常用的常式,簡化大型程序的
編寫。.NET框架也不例外,包含了許多類庫。另外,把程序轉換成可執行形式以及運行執
行文件時,編譯器和運行環境是必不可少的。Mono軟體包包含了.NET類庫的一部分、一個
C#編譯器和.NET運行環境CLR(Common Language Runtime,公共語言運行時環境)。
Mono聲稱支持Linux、Solaris、Free BSD和MS Windows;除了Intel x86系列的CPU(486,
各類Pentium等)之外,據說還要支持Sparc、PowerPC和StrongArm處理器。
下面就來看看如何在Linux上運行Mono。
命令行應用
先從Mono主頁()下載軟體,執行下面的命令安裝所有RPM:
rpm -ivh *.rpm
安裝完成後,所有基本的動態執行庫,包括System.Data.dll、System.dll、System.Draw
ing.dll、System.Web.dll和System.Xml.dll都被復制到/usr/lib下。接下來,在Linux文
本編輯器中輸入下面的內容,把文件保存為HelloMono.cs:
class HelloMono
{
public static void Main(string[ ] args)
{ System.Console.WriteLine( "Hello Mono ");
}
}
執行下面的命令編譯C#文件:
mcs HelloMono.cs
mcs是Mono的C#命令行編譯器。與MS .NET SDK的csc編譯器相似,mcs也有很多命令行選項
。上面的命令將生成可執行文件HelloMono.exe。注意這個執行文件不是Linux執行文件,
而是一個.NET執行文件,或者說,這個文件的可執行代碼形式是中間語言(IL,Intermed
iate Language)。要運行這個執行文件,必須執行如下命令:
mono HelloMono.exe
Linux控制台上將顯示出 "Hello Mono "。關於mcs和Mono的更多說明,請執行man mcs或man
mono參考其man文檔。
GUI應用
Mono不支持Windows Forms,但在C#編程中可用GTK #編寫GUI。GTK #是GTK+圖形庫的C#支
持工具,可從下載。下載完成後,先要安裝RPM:
rpm -Uvh *.rpm --nodeps
解開gtk-sharp-0.2.1.tar.gz:
tar -zxvf gtk-sharp-0.2.1.tar.gz
進入子目錄gtk-sharp-0.2.1,執行:
./configure --prefix=/usr
make
make install
完成這一步驟之後,重新啟動一次。與GTK#有關的所有動態代碼模塊(gtk-sharp.dll、a
tk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都會被復制到/u
sr/lib目錄,編譯用GTK#製作GUI的C#程序時,必須通過-r參數引用它們。GTK#下載包中包
含了幾個示常式序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。編譯這些文件的命令
如下:
mcs -r gtk-sharp -r glib-sharp HelloWorld.cs
mcs -r gtk-sharp -r glib-sharp -r System.Drawing Menu.cs
mcs -r gtk-sharp -r glib-sharp -r System.Drawing ButtonApp.cs
下面來看看如何通過-r選項引用前面各個.dll動態模塊。執行startx命令啟動X Window,
進入終端窗口,再進入示常式序所在目錄,執行下面的命令分別運行各個程序:
mono HelloWorld.exe
mono Menu.exe
mono ButtonApp.exe
Mono項目還在完善和發展之中,還沒有移植好全部.NET類。但不管怎樣,它對許多人來說
將是一個好消息。有關Mono C#類庫移植進展的信息,請訪問
tus.html。
考慮一個典型的伺服器/客戶機式.NET應用:最終用戶只與客戶端打交道,客戶端最好是方
便的GUI應用,許多人還會希望使用熟悉的Windows平台。但是,對於他們來說,伺服器端
使用Windows還是Linux完全無關。所以,伺服器端可以用帶有Mono的Linux構造,節省了配
備專用Windows伺服器的投資。Mono也將為應用遷移帶來方便。如果Mono能夠順利發展,W
indows開發者也將能夠為Linux或其他非Windows平台開發應用。如果這樣的話,不久之後
出現一個類似Visual Studio .NET但免費或廉價的Linux開發IDE也說不定。
然而,所有這一切是否能夠成為現實,依賴於Mono是否能夠茁壯發展,也依賴於Mono與Wi
ndows平台上的.NET框架兼容或相似程度。另外一些因素也很關鍵,例如Mono的性能、GUI
的友好程度等。
差不多的東西其實就是我講出來的,你仔細看下哈。正確的
8. 我用MONO載入C#程序,其中導入了一個控制項,然後編譯就出現了錯誤 com/Activex is not implemented
的EXE裡面還是ML
所以只要目標機有mono或.NET就可以運行,如果什麼都沒有一樣不能運行。
mono的效率應該不如.NET,而且相比缺乏一些功能。
9. C#的主要編譯工具是什麼
LZ問的是編譯器,很多人都在回答用什麼IDE = =
VS系列的是使用csc.exe
mono的編譯器是gmcs.exe
另外linux下面是可以的,monodevelop就可以,只不過你說拿VS開發的程序集直接用mono編譯我不保證可以
10. 如何在Linux上運行Mono
先從Mono主頁 )下載軟體,執行下面的命令安裝所有RPM:
rpm -ivh *.rpm
安裝完成後,所有基本的動態執行庫,包括System.Data.dll、System.dll、System.Draw
ing.dll、System.Web.dll和System.Xml.dll都被復制到/usr/lib下。接下來,在Linux文
本編輯器中輸入下面的內容,把文件保存為HelloMono.cs:
class HelloMono
{
public static void Main(string[ ] args)
{ System.Console.WriteLine("Hello Mono");
}
}
執行下面的命令編譯C#文件:
mcs HelloMono.cs
mcs是Mono的C#命令行編譯器。與MS .NET SDK的csc編譯器相似,mcs也有很多命令行選項
。上面的命令將生成可執行文件HelloMono.exe。注意這個執行文件不是Linux執行文件,
而是一個.NET執行文件,或者說,這個文件的可執行代碼形式是中間語言(IL,Intermed
iate Language)。要運行這個執行文件,必須執行如下命令:
mono HelloMono.exe
Linux控制台上將顯示出"Hello Mono"。關於mcs和Mono的更多說明,請執行man mcs或man
mono參考其man文檔。
GUI應用
Mono不支持Windows Forms,但在C#編程中可用GTK #編寫GUI。GTK #是GTK+圖形庫的C#支持工具。下載完成後,先要安裝RPM:
rpm -Uvh *.rpm --nodeps
解開gtk-sharp-0.2.1.tar.gz:
tar -zxvf gtk-sharp-0.2.1.tar.gz
進入子目錄gtk-sharp-0.2.1,執行:
./configure --prefix=/usr
make
make install
完成這一步驟之後,重新啟動一次。與GTK#有關的所有動態代碼模塊(gtk-sharp.dll、a
tk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都會被復制到/u
sr/lib目錄,編譯用GTK#製作GUI的C#程序時,必須通過-r參數引用它們。GTK#下載包中包
含了幾個示常式序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。編譯這些文件的命令
如下:
mcs -r gtk-sharp -r glib-sharp HelloWorld.cs
mcs -r gtk-sharp -r glib-sharp -r System.Drawing Menu.cs
mcs -r gtk-sharp -r glib-sharp -r System.Drawing ButtonApp.cs
下面來看看如何通過-r選項引用前面各個.dll動態模塊。執行startx命令啟動X Window,
進入終端窗口,再進入示常式序所在目錄,執行下面的命令分別運行各個程序:
mono HelloWorld.exe
mono Menu.exe
mono ButtonApp.exe
Mono項目還在完善和發展之中,還沒有移植好全部.NET類。但不管怎樣,它對許多人來說
將是一個好消息。有關Mono C#類庫移植進展的信息,請訪問www.go-mono.com/class-sta
tus.html。
考慮一個典型的伺服器/客戶機式.NET應用:最終用戶只與客戶端打交道,客戶端最好是方
便的GUI應用,許多人還會希望使用熟悉的Windows平台。但是,對於他們來說,伺服器端
使用Windows還是Linux完全無關。所以,伺服器端可以用帶有Mono的Linux構造,節省了配
備專用Windows伺服器的投資。Mono也將為應用遷移帶來方便。如果Mono能夠順利發展,W
indows開發者也將能夠為Linux或其他非Windows平台開發應用。如果這樣的話,不久之後
出現一個類似Visual Studio .NET但免費或廉價的Linux開發IDE也說不定。
然而,所有這一切是否能夠成為現實,依賴於Mono是否能夠茁壯發展,也依賴於Mono與Wi
ndows平台上的.NET框架兼容或相似程度。另外一些因素也很關鍵,例如Mono的性能、GUI
的友好程度等。