none
DLL 放置的位置 RRS feed

  • 問題

  • 大家好:

    我建立一個方案, 通常會在方案底下建立一個DLL的目錄, 並將所需 dll 放置在裏面!然後, 我就可以"新增參考", 並找到我要的 dll!

    現在我有一個問題! 我的 引用的 dll_A 又引用了其它三個 dll , 如果將這三個 dll 也放在 DLL 這個目錄當中, 執行時會出錯! 找不到 dll, 所以, 必需把它們放到 bin/Debug 目錄下, 若我要建置 Release 版本, 又要將它們 copy 到 bin/Release 目錄之下! 

    再者, 我若要封裝成一個安裝檔案時, 我好像又要自己把它們加入!

    有沒有一個方法, 可以告訴 VS, 我的 dll_A 參考了其它 dll ?

    謝謝


    2019年10月17日 上午 07:25

解答

  • 所以, 我想沒有沒一個設定,可以告訴VS, 我這一些檔案都需要用到, 你每次建置時, 都要copy過去! 尤其更換平台時(X86, X64, anyCPU), 要特別注意!

    不就是1樓的回覆嗎?

    如果不能加入「參考」的話,就將檔案(dll檔、文件檔等要隨附的任何檔案)加入[專案],再將其「複製到輸出目錄」屬性設為「一律複製」或是「有更新時才複製」,這樣建置專案時,就會將這些檔案複製到輸出目錄(debug/Release 或自訂目錄).


    Ader

    • 已標示為解答 GaryChiang 2019年10月18日 上午 06:15
    2019年10月18日 上午 02:41

所有回覆

  • 我不知道"自動"的方式... 我都用手動的...

    例如 A.dll 引用到 B.dll、C.dll,
    一種方式是將 A,B,C 都加入 "參考",

    如果 B,C 不能加入 "參考",
    另一種方式是只有 A 加入 "參考", B和C以檔案方式加入 "專案",
    再於兩檔案屬性設定複製,
    那建置時就會自動將設定的檔案複製到與執行檔同資料夾.

    以上供參考.


    Ader

    2019年10月17日 上午 10:31
  • 參考先前討論,Windows 預設 dll 的五個路徑。

    https://social.msdn.microsoft.com/Forums/zh-TW/966de797-8644-4808-b5f5-9f41f2acd9a6/2291420309203512999221407264122148722312vb6?forum=232

    基本上可以設定編譯結果都到同一個目錄,例如 專案目錄 ,則不論 Debug 還是 Release 都 OK 。

    不管你參照幾個 DLL ,都得一起拷貝,基於著作權法,非著作權所有者不能合併或嵌入 DLL ,一般 DLL 只會提供散佈權。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年10月17日 上午 11:46
  • 有試過在完成加入參考後, 點選[方案總管]視窗中被參考的組件, 到[屬性]視窗將DLL的[複製到本機]屬性設定為True嗎?
    2019年10月18日 上午 12:43
  • 有試過在參考好DLL組件後, 點選[方案總管]視窗中參考的DLL組件, 到[屬性]視窗將[複製到本機]屬性設定為True嗎?
    2019年10月18日 上午 12:45
  • 有試過點選[方案總管]視窗中參考的組件, 再到[屬性]視窗將[複製到本機]屬性設定為True嗎?
    2019年10月18日 上午 12:47
  • 謝謝大家的指教!

    回 tihs 大:

    我有設定為 ture! 所以, 我參考的Dll會自動copy到debug/Release目錄之中! 但我參照的DLL又參考了其它幾個dll, VS 就不會幫我做這件事, 所以, 我目前是自己copy過去! 但, 如果, 專案大了! 這樣的管理方式, 一定會出問題! (忘了copy)!

    所以, 我想沒有沒一個設定,可以告訴VS, 我這一些檔案都需要用到, 你每次建置時, 都要copy過去! 尤其更換平台時(X86, X64, anyCPU), 要特別注意!

    謝謝!

    2019年10月18日 上午 12:59
  • 所以, 我想沒有沒一個設定,可以告訴VS, 我這一些檔案都需要用到, 你每次建置時, 都要copy過去! 尤其更換平台時(X86, X64, anyCPU), 要特別注意!

    不就是1樓的回覆嗎?

    如果不能加入「參考」的話,就將檔案(dll檔、文件檔等要隨附的任何檔案)加入[專案],再將其「複製到輸出目錄」屬性設為「一律複製」或是「有更新時才複製」,這樣建置專案時,就會將這些檔案複製到輸出目錄(debug/Release 或自訂目錄).


    Ader

    • 已標示為解答 GaryChiang 2019年10月18日 上午 06:15
    2019年10月18日 上午 02:41