2011-11-18 110 views
1

我有一個VB.NET/C# Visual Studio 2010解決方案,其中包含大量項目,這些項目依賴於來自1個供應商的大約30個第三方DLL。這家第三方供應商最近發佈了他們軟件的新版本,所以我想平行測試他們的新軟件和我的增強功能,直到我能夠輕鬆切換。什麼是在Visual Studio 2010中設置解決方案的最佳方式,以便我可以使用我在這些第三方DLL之上開發的代碼,並且可以輕鬆地在下列之間切換:如何在Visual Studio 2010中管理支持DLL的不同版本?

(1)第三方的DLL [我的測試]和新版本
(2)的情況下,舊版本的第三方的DLL我需要調試一些 問題,用戶是有

第三方組件不在GAC中(它們當前位於網絡驅動器上的文件夾中)。他們沒有強烈的簽名(跑sn -vf)。他們從版本5.4.618.0更改爲5.4.619.60。

+1

只需在配置文件中使用不同的綁定策略即可切換。 –

+0

@亨克,我不知道這意味着什麼,也許你可以給我一個例子... – Denis

+0

從提供更多信息開始。他們是否在GAC中,他們是否簽名,主要/次要版本升級? –

回答

0

如果僅僅是一個小版本變化,這些都沒有簽署,那麼你可以換出庫。否則,您將需要在app.config中添加重定向綁定,以指向之前引用的新版本,或者僅創建第二個項目文件,其中包含更新後的參考文件以用於第二個文件夾。

+0

但我如何設置解決方案來快速做到這一點?我不想一直手動複製這個 - 我可能會忘記去做。 – Denis

0

您可以使用綁定重定向和代碼庫組合來對組件進行邏輯分組。在需要支持相同程序集的多個版本的情況下,它也有所幫助。 如果該程序集沒有強命名或未在GAC中找到,那麼運行時會在機器和應用程序配置文件中查找適用的codeBase元素。 codeBase元素將程序集名稱映射到文件或統一資源定位符(URL)。如果程序集是強命名的,codeBase可以引用任何位置,包括基於Internet的URL;否則,codeBase必須引用與應用程序目錄相關的目錄。

在Windows工作流的情況下,它是很常見的工作流程有多個版本,並排執行方。在這種情況下,程序集是強命名的,然後在web.config文件的代碼庫部分中添加適當的條目。你可以查看任何關於WF的標準文檔,看看它是如何實現的。

1

我們處理這個問題是創建與文件系統級別的項目/解決方案相關的組件文件夾的方式。

每當我們有我們需要使用第三方的DLL,他們進入這個文件夾,並在項目中引用的文件所做的文件夾中,而不是在版本GAC。

這使我們能夠與新版本更新dev的機器和測試。由於我們的所有代碼(包括程序集)都存儲在Subversion中,如果我們需要測試客戶遇到問題的版本,我們將該版本從Subversion檢查到不同的目錄中,並且我們準確地複製了客戶正在使用。

我們已經對一些非常大的項目做這行8年,它一直很,對我們非常好。

相關問題