2015-08-25 180 views
0

我有一個在幾個項目之間共享的DLL。這包含一些常見的自定義控件等。現在在dll項目中,我使用log4net來記錄這些控件引發的任何問題。共享DLL - 依賴關係

但是這意味着我需要在所有其他項目中包含log4net或者我無法解決依賴關係錯誤。添加log4net不是我在其他項目中使用它的一個大問題。

但是,我不禁覺得這是不應該做的事情? 還是有解決方案,而不是必須添加依賴項到任何項目使用我的DLL?

+1

我認爲在DLL引用上將Copy Local設置爲True會導致它被輸出到任何引用該特定項目的項目,從而避免添加對每個單獨項目的引用。 –

回答

0

包含依賴關係的基本思想如下 - 任何項目只包含那些在某些代碼中明確使用的依賴關係。

詳細說明,假設在一個項目P中,你有組件A1,A2。並且這個程序集A1 inturn使用程序集A2和A1在P中被引用並在代碼的某些部分中使用。現在,如果我們看到,我們同時將A1和A2作爲P的一部分。但是當我們將項目P的引用包含到其他項目Q中時,那麼我們在Q中沒有A2可用,因爲P沒有使用任何明確的代碼A2內。

這就是爲什麼您需要明確包含引用,即使它是被引用的普通成員的一部分。

希望這會有所幫助。