提問者
當用 C#, VB.net 編程後, 可否把所有引用都同時編入 exe 內?

一般討論
-
這個問題是一個 dependency 的問題, 雖然 .net Framework 可下載, 但不是每部機都可安裝 (政策問題或用戶不想), 因此, 如何把一個 .net project, compile 成一個不用引用 .net 的 exe file 或直接把需要的 dll 抄至 project 本身的目錄? 那麼, 每部電腦都可執行
- 已變更類型 Bill ChungMVP, Moderator 2011年11月14日 上午 07:25 發問者未繼續回覆, 因此石沉大海
所有回覆
-
是有一些工具可以用, 最常被提及的應該是Mono Project (而且這好像是幾個方案中唯一免費的)
http://www.mono-project.com/Main_Page
不過有些要注意的是
(1) 不保證可以 100% 運行沒問題
(2) 因為這樣包起來, 會變很大一包, 通常都會搞出個幾十MB, 因為有很多DLL是互相牽連的, 所以老實講, 比起裝.Net Framework 好像也沒有小到哪去.
(3) 我覺得比較明顯的好處是可以在非Windows 平台跑.NET 程式.
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
-
由這張架構圖來看,CLR 決非只是簡單的一些複製 dll 就可以完成的事情。而我們所說的 dll 是我們所寫的程式, 3rd Party ,以及 BCL 的dll而已。
-
可以使用 http://msdn.microsoft.com/zh-tw/library/ms171868.aspx#application_compatibility_and_deployment
.NET Framework 4 的 http://msdn.microsoft.com/zh-tw/library/cc656912.aspx ( .NET Framework Client Profile )
直接包裝最小 .NET Framework 4 在你的 exe 程式裡,
程式安裝時,會去檢查用戶端是否有 .NET Framework 4,沒有的話,就會自己連 exe 程式一起安裝那最小化的 .NET Framework 4。
http://kkbruce.blogspot.com/
http://about.me/kkbruce
春有百花秋有月, 夏有涼風冬有雪, 若無閒事在心頭, 便是人間好時節。 -
.NET Framework 4 的 http://msdn.microsoft.com/zh-tw/library/cc656912.aspx ( .NET Framework Client Profile )
直接包裝最小 .NET Framework 4 在你的 exe 程式裡,
程式安裝時,會去檢查用戶端是否有 .NET Framework 4,沒有的話,就會自己連 exe 程式一起安裝那最小化的 .NET Framework 4。
-
對微軟的定義來說,.Net framework 被視為系統元件的一部分,系統元件沒有要不要裝的問題,新版的 OS 都將內建舊版的 .Net framework ,例如 Win7 內建 .Net 3.5 以前版本。
Win2k 以後的 OS 都內建 VB6 標準版的執行環境。
有這種需求的話,應該根本就不要用 .Net framework 開發。
甚至用 VC+2010 時,也不要選擇 MFC ,而選澤 Win32 專案,只有純粹靠 API 兜起來的程式,才能確保啥都不用安裝。因為 MFC 也需要裝 MFC Runtime 程式庫,不是只是把所有 Library 都編譯進去就一定能跑。
論壇是網友平等互助 保證解答請至 微軟技術支援服務
提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。 -
不是找不找到 .net 下載的問題, 而是有些公司的 i.t. 政策, 在沒有許可下, 不淮安裝未批淮的軟件。有時亦因為要把個別寫成的程式裝往很多部電腦, 公司不想每部也裝進 .net framework。總之有很多不可以裝上 .net framework 的理由。
吃飯不能用碗。喝Coffee不能用杯子。
拉X不用能衛生紙。
開發.NET Framework不用能.NET Framework。
以上有什麼不一樣?
http://kkbruce.blogspot.com/
http://about.me/kkbruce
春有百花秋有月, 夏有涼風冬有雪, 若無閒事在心頭, 便是人間好時節。 -
除了 Mono, 另一個商業版的軟體也可以.
[Salamander .NET Linker, Native Compiler and Mini-Deployment Tool]
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。