国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使C#程序脫離.net框架運行(非飛信方式)

使C#程序脫離.net框架運行(非飛信方式)

這幾天看了很多關于脫離框架運行C#程序的文章,千篇一律,都是講飛信方案的,此方案涉及一些法律問題,只能自己研究一下,后來用google美國網(wǎng)站搜了一把,看了些文章,無意中發(fā)現(xiàn)mono,又用mono關鍵字到google中國搜了一把,已經(jīng)有人實現(xiàn)控制臺程序脫離.net框架了。

其實就是換mono的公共語言運行時來使用。這樣做的好處是體積小,發(fā)布免安裝。首先,您需要下載mono的最新版。http://ftp.novell.com/pub/mono/archive/1.9.1/windows-installer/2/mono-1.9.1-gtksharp-2.10.4-win32-2.exe,安裝后,就可以繼續(xù)進行了。

1、用Visual Studio創(chuàng)建一個Windows應用程序,假設叫做WinApp,并添加一個按鈕。

2、編譯此項目,得到一個WinApp.exe文件。

3、自己建立一個文件夾WinApp,其中再建立bin和lib這兩個文件夾

4、將mono安裝文件夾中的bin和lib子文件夾中需要的文件拷貝至剛才建立的那兩個文件夾。mono的默認安裝位置是:C:\Program Files\Mono-1.9.1

5、將需要運行的exe文件放入WinApp文件夾。

6、調(diào)用,可以使用bat批處理來調(diào)用,bin\mono.exe WinApp.exe。(其實寫個VC++的小程序調(diào)用最好,可以我沒學過VC++)

好了,發(fā)個代碼上來,有興趣的朋友可以研究一下,7zip打包后僅3.26MB,卻實現(xiàn)了免安裝微軟龐大的框架。此測試項目我在純凈的虛擬機和本機均測試過,但有個bug,mono對中文路徑支持不好,如若有中文路徑,則無法運行。我后來又試了用C:\Program Files\Mono-1.9.1\bin\mono.exe來執(zhí)行,則沒有中文路徑問題。我覺得缺少了哪個文件,一個一個試著拷貝到WinApp文件夾中,再用批處理來執(zhí)行,還是錯誤。后來干脆將整個安裝目錄的文件全搬到WinApp目錄中,執(zhí)行批處理還是失敗,可是用C:\Program Files\Mono-1.9.1\bin\mono.exe來執(zhí)行就是能成功,百思不得其解??!究竟少了什么東西呢?

博客園單個文件限制在了1.95MB,我試了好多次不成功,大家到我的CSDN上下載吧,0分資源。

http://download.csdn.net/source/661248

0
0
(請您對文章做出評價)
博主前一篇:C#中將dll匯入exe,并加殼
博主后一篇:SQL語句中的單引號處理以及模糊查詢
posted on 2008-10-02 03:53 清晨陽光 閱讀(4881) 評論(8) 編輯 收藏

評論:
#1樓 2008-10-02 09:58 | htqx[未注冊用戶]
下一代.net 4應該會解決這個問題,發(fā)布一個可定制的子集。
 回復 引用   
#2樓 2008-10-02 10:16 | clefoo      
很好
收藏了

 回復 引用 查看   
#3樓 2008-10-02 10:23 | clefoo      
這個我們不知道需要什么文件啊
LZ能不能說明點

 回復 引用 查看   
#4樓[樓主] 2008-10-02 11:43 | 清晨陽光      
至少我這個例子不缺少文件了,如果增加新的東西,請到mono安裝目錄lib\mono\gac里面找一下,有很多System開頭的。簡單的項目能應付,要是非常復雜,就說不來了,呵呵!
微軟Visaul Studio 2008 SP1 發(fā)布后,出了一個叫做Client Profile的東西,是.Net Framework的精簡子集,客戶端據(jù)說安裝后大小為27MB,沒裝2008,不知道咋用。

 回復 引用 查看   
#5樓 2009-03-20 20:18 | 滄海月明      
.net 開發(fā)的軟件的發(fā)布真是一個大問題, 2.0 還好只有20多M, 3.0需要50多M,
3.5基本上網(wǎng)絡分發(fā)不太可行了. Client Profile也用過, 只能減少客戶端的安裝內(nèi)容,不能減少下載內(nèi)容.
mono倒是個好思路, 據(jù)說mono有個AOT編譯選項,可以編譯為原生代碼, 不知道能否在windows下使用.

 回復 引用 查看   
#6樓 2010-09-12 09:06 | 悠哉悠哉      
.NET程序脫離框架進階 之 Embedding Mono  使用MONO讓.NET程序脫離.NET Framework運行是個不錯的方法,網(wǎng)上已有很多介紹。但是MONO運行.NET程序也有讓人郁悶的地方,比如你只能使用“mono 你的NET程序名.exe”這樣的命令運行你的.NET程序(當然,你也可以用C++寫個程序來調(diào)用。),雖然也不復雜,但是程序運行時MONO黑乎乎的命令行窗口實在礙眼。

  前些日子看了下MONO官方Embedding Mono介紹,于是動手寫了個,用起來爽多了,看下面C++代碼:
#include "stdafx.h"
#include <glib/glib.h>
#include <mono/jit/jit.h>
#include <mono/metadata/assembly.h>
#include <mono/metadata/environment.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
int main(int argc, char* argv[])
{
int retval;
char *file;
file = ".\\demo.exe"; // .NET程序路徑
//argv[0] = file;
mono_set_dirs(".\\lib", NULL);
MonoDomain *domain;
MonoAssembly *assembly;
domain = mono_jit_init (file);
assembly = mono_domain_assembly_open (domain, file);
if (!assembly) exit (2);
mono_jit_exec (domain, assembly, argc, argv);
retval = mono_environment_exitcode_get ();
mono_jit_cleanup (domain);
return retval;
}
  哎,不會寫文章,直接上源碼下載地址:http://www.xun6.com/file/0dcf46622/EmbeddingMono.zip.html
  壓縮包中包含精簡過的MONO框架(在Release目錄中)僅包含demo所需的組件,所以不適合你的程序,你可以自行下載MONO框架進行精簡,這方面網(wǎng)上已有很多文章,我就不再羅嗦了。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
!!使用mono脫離.net框架運行winform程序時不能正常調(diào)用winapi
使用.net 2003中的ngen.exe編譯.net程序
C#開源資源大匯總
體驗繁花似錦的Unix世界
白話插件框架原理
DotNet 資源大全(上)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服