2014-10-10 76 views
1

我找到了一個找到同一個程序集的多個版本的項目的問題。 System.Web.Mvc例如:當使用NuGet作爲包源時解決多個衝突的System.Web.Mvc版本

enter image description here

我要確保我們的MVC項目將永遠找不到任何地方這樣一個過時的dll除了出的NuGet來源。

我認識到從系統中刪除衝突的版本並不是一個好主意,因爲很多應用程序可能取決於它們。例如,這一個被發現在C:\Program Files (x86)

更新:

由於我們使用的NuGet,我改變了:

Project > Properties > Build > Output > Output path:C:\Temp\Drop

在每個項目

(我們有一些便攜式區域類圖書館項目),然後

Project > Properties > Reference Paths並添加C:\Temp\Drop

問題就消失了。

請問這是正確的方法去解決這個問題,或者我只是打開另一個蠕蟲在這裏?

+0

您是否有resharper或其他類似的插件? – 2014-10-10 06:49:54

+0

GAC在運行時使用 - 它不是在visual studio的設計/編譯時使用。但是,您將獲得對4.0.0.0版的引用,它不是*來自GAC。 – 2014-10-10 06:50:54

+0

是的,我注意到它正在尋找不同的位置。某處C:\ Program Files(x86) – 2014-10-10 06:52:01

回答

2

檢查與程序集綁定和探測下面的文章,這是相當不錯的:

MSDN - Assembly Probing

入住這Article了。

有一個完整的層次結構用於查找程序集,對於強命名的程序集,GAC將是第一個地方,在您使用強命名程序集的情況下。正如文章中所解釋的,您應該能夠在運行時將您的應用程序指向正確的彙編版本

+0

謝謝,我一定會看看那些:) – 2014-10-10 06:59:19