.net程序部署(mono方式)
某一次?我同事用了這個詞?,說這樣才顯得夠?qū)I(yè)?擦。把某某項目?部署到服務(wù)器上?。擦?不就是拷個文件過去運行么。月亮?還是綿羊??我搞不清楚了?咱英文不好,綿羊叫的聲音?。你就叫我山寨程序猿?隨意?一直就這風(fēng)格。
?
mono?是一種基于.NET?Framework的開放源代碼平臺。
安裝文件在此地址下載
http://www.go-mono.com/mono-downloads/download.html
?
經(jīng)證實?安裝過后直接?把?moon.exe??和相關(guān)目錄?直接?拷走?然后運行也是可以的,所謂的綠色軟件。mono本身就是一個開放的.NET?Framework平臺?。就是說你可以在沒安裝.NET?Framework框架的電腦上運行?基于.NET?Framework?的程序,并且不用安裝?放在U盤里直接就可以運行?只要mono放在一起。然后你引用了哪些類庫?就拷貝對應(yīng)目錄的?dll文件?也要放在一起,說白了就是moon版本的?庫文件。看下我的?程序里只用到了基本類庫?然后就是winform?和gdi?,然后我只拷了這些文件過來?總共4兆的樣子lib\mono\gac:
?
?
mono運行.net程序的方式是:?mono.exe?加上.net程序文件名。通過以上你就明白了?,把只要編寫一個批處理命令文件?就ok了。
?
雙擊批處理文件:
?
?
看到?jīng)]左上角的默認圖標(biāo)變成mono的了?。程序運行效果跟原來的一樣。換其他電腦試試呢,剛剛不是說過嗎?整個文件夾拷到U盤里?在其他電腦可以直接運行。如果在沒安裝.net框架的電腦上你發(fā)現(xiàn)不行?,有可能出現(xiàn)這樣的錯誤:
?
根本原因:.net的exe?是托管代碼?運行時首先他要尋找mscoree.dll?由此來匹配操作系統(tǒng)已經(jīng)安裝了的.netframework版本。Mscoree.dll?存在于system32?目錄下。
?
關(guān)于mscoree.dll深究詳情請參考此文 ?.NET中的幕后英雄:MSCOREE.DLL :
http://blog.csdn.net/atfield/article/details/1750890
明白了噻?,你可以把你系統(tǒng)的Mscoree.dll?文件也拷到U盤目錄下,然后再寫個批處理文件,判斷沒有同名文件?則從U盤拷貝一份到system32?目錄。由此?看你自己需求?,你可以把批處理?寫成一個安裝腳本?就像?tomcat?那樣?,這些都是可以做到的。
?
還有一點?通過批處理運行始終有個命令行窗口?很不爽。C#里你知道有個什么?progress?可以調(diào)用外部進程?通過參數(shù)的方式?,其實也就跟批處理異曲同工,并且C++里也有同樣的東西,這樣就可去除命令行窗口。我們編寫一段簡單的C++代碼?把.net程序作為參數(shù)?傳給moon運行,原理都講得相當(dāng)明了了?。這里我就不貼圖了?,經(jīng)我測試?是行得通的。
?
接下來我們將 介紹setupFactory的使用。
.net程序部署(setupFactory方式)
?
轉(zhuǎn)載于:https://www.cnblogs.com/assassinx/p/3766759.html
總結(jié)
以上是生活随笔為你收集整理的.net程序部署(mono方式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: websphere、weblogic上J
- 下一篇: PHP实现链表