2010-04-27 22 views
8

如何強制引用GAC DLL的任何想法?在垃圾箱中包含GAC程序集

這是我的問題,我經常使用第三方DLL註冊自己到GAC中,當我在項目中使用它時,它從gac中讀取它,當我部署時,我總是忘記添加DLL,因爲它不在Bin/Referenced文件夾中。

無論如何強制Visual Studio添加DLL而不是從GAC?

回答

7

右鍵單擊程序集引用,選擇屬性,並將「Copy Local」更改爲true。這將導致它裝配本地地產複製到部署目錄

+9

警告:這不是傳遞!因此,如果'MyExe'引用'MyLib'引用'DllInGac',那麼'MyLib'將被本地複製,但是*它的依賴不會被複制到'MyExe'中,如果它們已經在GAC中的話。 – 2012-06-19 10:42:39

5

在引用中選擇dll並在屬性窗口中設置CopyLocal = true。

2

選擇參考和設置複製到真正

12

複製本地只能如果GAC'd裝配如果一個參考電平深。例如,如果您有一個引用GAC'd程序集的項目,並且該項目是由您的Web項目引用的,那麼,如果是,GAC的程序集將被複制到第一個項目的bin文件夾,但它不會被複制到您的Web項目的bin文件夾中。

然後,解決方案是直接將Web項目中的引用設置爲GAC'd程序集,並指定「複製本地」。即使Web項目在這種情況下不直接使用引用,它也會將其複製到Web應用程序的bin文件夾中。

+2

解決方案充滿了危險,尤其是在涉及代碼清理工具時。如果像Resharper這樣的東西告訴你一個引用是「不需要的」(想象一下大型項目團隊)並且這些引用被清除,你就回到原點。 – Shiv 2014-04-14 04:59:20