none
如何在主程式內加載dll? RRS feed

  • 問題

  • 如何在主程式內加載dll?

    MySql.Data.dll 和 主程式拼在一起...

     如下圖:

    System.IO.FileNotFoundException: 無法載入檔案或組件 'MySql.Data, Version=5.0.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' 或其相依性的其中之一。 系統找不到指定的檔案。
    檔案名稱: 'MySql.Data, Version=5.0.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'
       於 iNet_Messenger.LoginForm.BackgroundWorker1_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
       於 System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
       於 System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)

    2010年10月12日 上午 10:49

解答

  • 放在 bin 目錄內。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月12日 下午 01:47
  • 除非原作者同意,否則你這個行為會有違反著作權的問題 (因為你把人家的成品合併到你的程式碼內,而不是單獨存在)。

    或是,改用 C++ 使用靜態函式庫來寫,就可以達到你要的 (只有 EXE) 了。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    2010年10月13日 上午 05:38
    版主


  • 抱歉喔= =可能我不清楚那Software 怎麼用

     

    那是 純 .Net Library

     

     

    還是不能夠單獨運行。

    我直接用命令列模式是可行的, 你在產生時可以選擇"產生log" , 看看log檔有沒有特別的訊息, 還有你的Framework的版本設定有正確嗎 ?

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

    當初沒考慮到版權問題所以才那樣回應

    當合併的組件有版權問題的話

    建議還是不要嚐試該做法

    若只是為了方便給客戶使用

    可考慮使用部屬專案


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年10月14日 上午 04:59

所有回覆

  • 放在 bin 目錄內。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月12日 下午 01:47
  • 放在 bin 目錄內。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。


    可是能夠和主程式拼在一起嗎??

    就是用單一主程式 EXE (不用EXE + dll)...

    到其他電腦也能運行....

    2010年10月12日 下午 02:34
  • 用蹂躪建議的ILMerge試試看..

    http://social.msdn.microsoft.com/Forums/zh-TW/233/thread/c01b209f-8bac-4236-ba48-72f4cbd04a63


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月12日 下午 02:48
    版主
  • 用蹂躪建議的ILMerge試試看..

    http://social.msdn.microsoft.com/Forums/zh-TW/233/thread/c01b209f-8bac-4236-ba48-72f4cbd04a63


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


    先謝你啦...可是也不行...我想要的效果是將 DLL 注入 EXE 裡面

    到其他電腦啟動也不會說沒有什麼什麼組件DLL

    2010年10月12日 下午 03:22
  • 你看過連結內保哥寫的那篇文章沒有 ? 試過了沒有 ? 還是你連試都沒試就說不行 ?

    如果真的不行 ? 出現了什麼樣的狀況或訊息 ? 你的操作過程又是如何 ?

    你們發問不能老是都丟一個 "不行!", 那我們要怎樣繼續討論下去呢 ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月12日 下午 03:38
    版主
  • 老兄別那麼氣 .\/. ~先冷靜一下~

    我是有保哥寫的那篇文章...也試過...可能我說得不太清楚

    我不是要把多個DLL合併成單一個 .NET 組件...DLL

    我是要把 EXE 主程式 跟 MySql.Data.dll (這跟EXE結合成單一體來運行)

    結果: EXE + dll 單一體運作...去別的電腦也不用 EXE 跟 DLL (2個存在才能運行)

     

    2010年10月12日 下午 04:15
  • 這樣是侵犯著作財產權的行為。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年10月12日 下午 04:19
  • 老兄別那麼氣 .\/. ~先冷靜一下~

    我是有保哥寫的那篇文章...也試過...可能我說得不太清楚

    我不是要把多個DLL合併成單一個 .NET 組件...DLL

    我是要把 EXE 主程式 跟 MySql.Data.dll (這跟EXE結合成單一體來運行)

    結果: EXE + dll 單一體運作...去別的電腦也不用 EXE 跟 DLL (2個存在才能運行)

     

    我一點都不氣,只是覺得你發問的太不負責任.

    剛剛我測試過, 是可以將DLL 合併到 EXE檔中的. 我還特別將合併後的單一執行檔複製到另一台電腦執行.

    所以依照你给的線索, 沒有辦法知道為什麼你會發生不能執行的問題, 因為你完全沒有描述過程, 也沒有描述DLL有何特別之處 (ex: 是Win32 API 還是純 .Net Library).

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月12日 下午 04:55
    版主
  • 老兄別那麼氣 .\/. ~先冷靜一下~

    我是有保哥寫的那篇文章...也試過...可能我說得不太清楚

    我不是要把多個DLL合併成單一個 .NET 組件...DLL

    我是要把 EXE 主程式 跟 MySql.Data.dll (這跟EXE結合成單一體來運行)

    結果: EXE + dll 單一體運作...去別的電腦也不用 EXE 跟 DLL (2個存在才能運行)

     

    我一點都不氣,只是覺得你發問的太不負責任.

    剛剛我測試過, 是可以將DLL 合併到 EXE檔中的. 我還特別將合併後的單一執行檔複製到另一台電腦執行.

    所以依照你给的線索, 沒有辦法知道為什麼你會發生不能執行的問題, 因為你完全沒有描述過程, 也沒有描述DLL有何特別之處 (ex: 是Win32 API 還是純 .Net Library).

     


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


    抱歉喔= =可能我不清楚那Software 怎麼用

     

    那是 純 .Net Library

     

     

    還是不能夠單獨運行。

    • 已編輯 Mr.Frankie 2010年10月13日 上午 05:50
    2010年10月13日 上午 05:12
  • 除非原作者同意,否則你這個行為會有違反著作權的問題 (因為你把人家的成品合併到你的程式碼內,而不是單獨存在)。

    或是,改用 C++ 使用靜態函式庫來寫,就可以達到你要的 (只有 EXE) 了。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    2010年10月13日 上午 05:38
    版主
  • 除非原作者同意,否則你這個行為會有違反著作權的問題 (因為你把人家的成品合併到你的程式碼內,而不是單獨存在)。

    或是,改用 C++ 使用靜態函式庫來寫,就可以達到你要的 (只有 EXE) 了。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白


    老師先謝謝你的意見^^...我只是試試看而已

    當成形了就把它變成原形

    2010年10月13日 上午 05:52


  • 抱歉喔= =可能我不清楚那Software 怎麼用

     

    那是 純 .Net Library

     

     

    還是不能夠單獨運行。

    我直接用命令列模式是可行的, 你在產生時可以選擇"產生log" , 看看log檔有沒有特別的訊息, 還有你的Framework的版本設定有正確嗎 ?

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

    當初沒考慮到版權問題所以才那樣回應

    當合併的組件有版權問題的話

    建議還是不要嚐試該做法

    若只是為了方便給客戶使用

    可考慮使用部屬專案


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年10月14日 上午 04:59