我創建了一個將被多個應用程序使用的dll,並創建了一個安裝程序包,將其安裝到程序文件中,並將其添加到全局程序集緩存中。關於dll繼承的問題
該dll本身使用log4net,並需要一個xml文件的日誌定義。
因此在運行安裝程序時,下列文件被複制到安裝目錄下的程序文件中: 是我公司開發 主要的DLL - 該Log4Net.dll - 在Log4Net.xml文件
我現在遇到問題。我創建了一個用於實驗的測試控制檯應用程序。我已經添加了我的dll作爲參考,並將「本地副本」標誌設置爲false。
但是,當我編譯測試控制檯exe時,我注意到它已將log4net.dll和log4net.xml文件複製到bin目錄。當運行測試控制檯時,它看起來只有在log4net.dll與exe相同的目錄下才能工作。這是因爲測試控制檯應用程序不使用log4net,而只是作爲參考添加的dll。
是否有某種方式讓它使用log4net.dll & xml文件將被安裝到程序文件,而不是任何需要複製到本地副本的應用程序?將使用我的DLL的應用程序將不會使用log4net,只有他們所引用的dll使用它。
非常感謝
不幸的是,必須依賴任何dll的本地副本不是一個選項 - 這是由於項目的需求,因爲客戶希望獨立的exe可以運行。這就是爲什麼我已將我的dll添加到GAC。 – Adam 2010-04-22 01:08:49
這是一隻豬的口紅。它不是*獨立的exe文件,它需要GAC中的程序集和某個配置它的xml文件。擁有「獨立EXE」的唯一要求不需要安裝程序。那是一頭不會飛的豬。 – 2010-04-22 01:32:42
它需要獨立運行,以便能夠從主機上的任何目錄運行。客戶端需要一個乾淨的目錄,裏面裝滿了可以運行的exe文件,而不是一個充滿exe的目錄,並支持DLL的/ xml文件。 實際上,我幾乎可以通過將log4net.dll添加到GAC中,除了現在我遇到了一個不拾取xml文件的問題。但是,這是一個進步。 我同意你的看法,認爲它可能不是最好的解決方案,但不幸的是,它不是我的設計,而且我僅限於我們客戶想要的框架。非常感謝 – Adam 2010-04-22 01:48:01