2012-03-08 33 views
0

我有一個使用(不執行)的應用程序在一個單獨的DLL的接口。我最近對此界面進行了更改。但是,我的應用程序不使用此界面中的任何新功能。編譯使用新的DLL但用舊的DLL運行

我的問題是:是否可以將使用舊的DLL運行應用程序,如果我編譯使用新的DLL(有了新的變化)的應用程序。

+0

「是否可以」真的取決於你的需求是什麼。如果它適用於您的應用程序,並且您不想更改它,則不必這樣做,但通常最好引用該項目而不是dll,以確保您以後不會遇到依賴項問題。 – 2012-03-08 01:39:28

+0

我實際上正在引用項目,這就是爲什麼我正在編譯新的代碼。但是當我部署它時,庫的舊DLL仍然存在。我只想知道是否需要部署新的DLL。 – Koda 2012-03-08 02:03:00

+0

@Alvin是的。無論是更新後的基準複製到使用它的項目的bin目錄,或重建依賴項目,它應該找到更新的版本(假設基準從原來的生成位置添加和'CopyLocal'是真的。 – 2012-03-08 02:08:47

回答

0

它應該是在正常情況下的罰款。

我不得不嘗試了這一點,以確保...但是,實際上它似乎好了工作了。我在dll中創建了一個接口,在應用程序中引用它,並使用反射來檢查dll中接口上的方法。然後,修改了接口,重新編譯了dll和應用程序,並且應用程序能夠檢索舊的或新的dll的接口上的方法。

+0

它似乎爲我工作也沒關係。我只是擔心,應用程序將隨後拋出一些運行時異常。 – Koda 2012-03-08 03:40:51

+1

好吧,如果現在不扔一個......這只是一和零,爲什麼會拋出一個後來? – 2012-03-08 04:09:04

+0

檢查了這一點:http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=VS.100%29.aspx – 2012-03-08 04:11:03