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

  • 一般討論

  • 這個問題是一個 dependency 的問題, 雖然 .net Framework 可下載, 但不是每部機都可安裝 (政策問題或用戶不想), 因此, 如何把一個 .net project, compile 成一個不用引用 .net 的 exe file 或直接把需要的 dll 抄至 project 本身的目錄? 那麼, 每部電腦都可執行
    2011年10月17日 下午 12:45

所有回覆

  • 不裝就沒有JIT編譯器,光有dll也是不能執行。

     

    2011年10月17日 下午 01:59
  • 是有一些工具可以用, 最常被提及的應該是Mono Project (而且這好像是幾個方案中唯一免費的)

    http://www.mono-project.com/Main_Page

    不過有些要注意的是

    (1) 不保證可以 100% 運行沒問題

    (2) 因為這樣包起來, 會變很大一包, 通常都會搞出個幾十MB, 因為有很多DLL是互相牽連的, 所以老實講, 比起裝.Net Framework 好像也沒有小到哪去.

    (3) 我覺得比較明顯的好處是可以在非Windows 平台跑.NET 程式.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年10月17日 下午 04:03
    版主
  • .NET應用程式必須在.NET平台中執行, .NET平台不只提供應用程式執行需要的功能, 也負責安全管制和資源管理等工作

    2011年10月18日 下午 01:33
  • http://geekswithblogs.net/images/geekswithblogs_net/sdorman/WindowsLiveWriter/CLR4.0InProcessSidebySideCLRHosting_93B4/image_2.png

    由這張架構圖來看,CLR 決非只是簡單的一些複製 dll 就可以完成的事情。而我們所說的 dll 是我們所寫的程式, 3rd Party ,以及 BCL  的dll而已。

     

    2011年10月19日 上午 02:31
  • 可以使用 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
    春有百花秋有月, 夏有涼風冬有雪, 若無閒事在心頭, 便是人間好時節。
    2011年10月21日 下午 10:56
  • .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, 便從網路上下載然後安裝, 對嗎? 但我的問題是客戶的電腦不容許安裝其他程式什至沒有連至網路
    2011年10月22日 上午 06:37
  • 這時候就需要 安裝部署了。
    2011年10月22日 上午 08:50
  • 你可以一起燒到光碟,從光碟抓。(也可以是隨身碟)

    既有討論:

    程式部署與封裝問題

    下載.net framework的網頁不見了                                


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年10月22日 上午 09:40
  • 不是找不找到 .net 下載的問題, 而是有些公司的 i.t. 政策, 在沒有許可下, 不淮安裝未批淮的軟件。有時亦因為要把個別寫成的程式裝往很多部電腦, 公司不想每部也裝進 .net framework。總之有很多不可以裝上 .net framework 的理由。
    2011年10月22日 下午 05:56
  • 對微軟的定義來說,.Net framework 被視為系統元件的一部分,系統元件沒有要不要裝的問題,新版的 OS 都將內建舊版的 .Net framework ,例如 Win7 內建 .Net 3.5 以前版本。

    Win2k 以後的 OS 都內建 VB6 標準版的執行環境。

    有這種需求的話,應該根本就不要用 .Net framework 開發。

    甚至用 VC+2010 時,也不要選擇 MFC ,而選澤 Win32 專案,只有純粹靠 API 兜起來的程式,才能確保啥都不用安裝。因為 MFC 也需要裝 MFC Runtime 程式庫,不是只是把所有 Library 都編譯進去就一定能跑。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年10月23日 上午 02:29
  • 不是找不找到 .net 下載的問題, 而是有些公司的 i.t. 政策, 在沒有許可下, 不淮安裝未批淮的軟件。有時亦因為要把個別寫成的程式裝往很多部電腦, 公司不想每部也裝進 .net framework。總之有很多不可以裝上 .net framework 的理由。


    吃飯不能用碗。

    喝Coffee不能用杯子。

    拉X不用能衛生紙。

    開發.NET Framework不用能.NET Framework。

    以上有什麼不一樣?


    http://kkbruce.blogspot.com/
    http://about.me/kkbruce
    春有百花秋有月, 夏有涼風冬有雪, 若無閒事在心頭, 便是人間好時節。
    2011年10月23日 上午 06:22
  • 除了 Mono, 另一個商業版的軟體也可以.

    [Salamander .NET Linker, Native Compiler and Mini-Deployment Tool]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年10月23日 上午 07:35
    版主