2014-02-27 26 views
1

我有幾個項目,我稱它們爲反射,這個項目的一些使用外部DLL,當我編譯我的項目時,每件事情都很好,問題發生了當我更改外部dll到新版本(新的程序集版本),即使外部dll沒有更改其代碼,如果我重新編譯我的項目它將正常工作。事情是我如何建立我的項目,並告訴他們忽略參考的彙編版本。 這是我在運行時得到的異常 無法加載文件或程序集「TheExternalDLL,Version = 9.1.0.61,Culture = neutral,PublicKeyToken = 111965d80b18ee08」或其某個依賴項。定位的程序集清單定義與程序集引用不匹配。 (來自HRESULT的例外如何在C#中項目的構建過程中忽略參考版本

+2

你嘗試使用,而不是純粹的反射的IoC您也注入文件 – mike00

+0

你有沒有想出解決一個出來,我似乎現在每週都有這個問題,並且有不同的代碼基礎注入重定向似乎運作良好。 – alundy

回答

0

您的配置文件可能包含對前一個DLL版本號的引用,所以您可能需要更新該版本號,否則可以嘗試添加綁定重定向到您的項目配置文件,其中包括版本高達。新的DLL版本號它可能是這個樣子:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="TheExternalDLL" publicKeyToken="?" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="10.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

更多信息:?http://msdn.microsoft.com/en-us/library/eftw1fys(v=vs.100).aspx

相關問題