2009-08-10 51 views
0

我從我們的分包商那裏得到了一個完整的vs2005項目,這取決於他們的其他幾個項目。我沒有得到這些項目的源文件,但我確實有bin/debug文件夾中的dll(讓我們稱它們爲a.dll和b.dll)。 我將這些DLL複製到一個\ lib文件夾中,並將引用改爲指向那裏。我現在遇到的問題是a.dll和b.dll依賴於我們正在開發的產品的特定版本,我們的系統安裝了不同的版本。更改DLL清單

是否有足夠簡單的方法可以打開a.dll和b.dll,並將其清單更改爲我們的產品版本?或者更好 - 讓他們不依賴於特定的版本?

回答

0

您可以使用Assembly Binding Redirection使所需版本實際加載您擁有的版本嗎?

例如在你的app.settings文件中,有這樣的東西:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="myAssembly" 
          publicKeyToken="32ab4ba45e0a69a1" 
          culture="en-us" /> 
     <bindingRedirect oldVersion="1.0.0.0" 
         newVersion="2.0.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

它似乎沒有工作。它應該工作,即使當我的項目依賴於a.dll,這取決於特定版本的(讓我們承認它...) - ESRI.ArcGIS.System?當我將這部分添加到我自己的項目的app.config中時,是否應該影響編譯時a.dll要查找的內容? – 2009-08-10 14:28:14

+0

另一件事 - a.dll依賴於版本9.3。我有版本9.2 - 我可以像這樣重定向到一個更低的版本? – 2009-08-10 14:32:44

+0

是的,它會影響a.dll的外觀。但是,嘗試使用* lower *版本似乎是一個非常糟糕的主意。如果它在9.3中使用新的功能呢? – 2009-08-10 14:49:13