2012-08-13 29 views
0

我在我的.net應用程序中有2個自制DLL。第一個DLL是通用DLL,第二個DLL也使用第一個DLL。現在無論何時我更新第一個DLL(新版本號),我都需要重新編譯第二個DLL。是否有可能更新第一個DLL而不需要重新編譯第二個DLL? 謝謝!編譯.net dll沒有特定的vers vers

+2

是你的第一個DLL .NET或COM?在任何情況下,如果你已經正確引用它們並且公共接口保持不變,那麼它不應該重要,也不需要重新編譯。 – 2012-08-13 13:48:12

+0

DLL和App都是.net。但只要我更新了例如First.dll從版本1.1升級到1.2並更新我的應用程序,在我的應用程序中使用的Second.dll抱怨First.dll版本1.1不再可用(因爲Second.dll是參考First.dll版本1.1編譯的) – K232 2012-08-13 14:13:15

回答

2

將引用添加到庫時,請確保將引用上的「特定版本」屬性設置爲「False」。只要你沒有引用一個特定的版本,它就沒有關係。您將能夠重新編譯依賴項,而無需重新編譯依賴於它們的項目。但是,Visual Studio會自動重新編譯您的項目,即使除依賴項的版本號外沒有任何更改。從技術上講,這是沒有必要的,所以你仍然可以運行舊的exe對新的庫等。

+0

嗨史蒂夫!是的,已經有了,但Second.dll仍然在抱怨:-(忘了提及:它是.net 2.0 ....但'特定版本'屬性已經可用了,我會仔細看看。它應該以這種方式工作,我會盡力找到我的錯誤...謝謝! – K232 2012-08-13 14:42:11

0

如果你引用一個程序集,並且程序集的接口改變了,那麼是的,你必須重新編譯調用代碼。但是,如果您有一個包含接口的常用程序集,則可以更改所需的服務器程序集,因爲調用代碼仍然只會引用具有接口的程序集。

就像SteveDog說的那樣,將特定版本屬性(您的引用)設置爲False。