2010-11-24 67 views
7

我的項目編號Library1.dllLibrary2.dllLibrary2.dllLibrary1.dll有依賴關係,但它被編譯爲以不同的名稱引用它,Library1.Net40.dll將.NET程序集引用解析爲其他名稱?

是否有一個很好的方式告訴我的應用程序重定向Library1.Net40.dll所有引用解析爲Library1.dll?也許類似於您可以使用<bindingRedirect>重定向版本的方式?

我有一個解決方案,可以處理AppDomain.AssemblyResolve事件,但這有點破解,希望有一個更好的方法來做到這一點。

編輯: 對於任何人的參考,下面就是我結束了使用的AppDomain.AssemblyResolve event重定向到一個不同的裝配解決它。

回答

4

您是否試過玩<codeBase> element

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Library1.Net40" 
           publicKeyToken="..." 
           culture="neutral" /> 
      <codeBase version="2.0.0.0" 
         href="Library1.dll"/> 
     </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

(未經測試;如果它工作不知道。)

CF:我在這裏把這個更新,因爲它是有點長的意見:)

好主意,謝謝。我得到了重定向工作,但它抱怨,因爲名稱不同,這裏是日誌:

LOG: Attempting download of new URL file:///C:/Project/bin/Library1.dll. 
LOG: Assembly download was successful. Attempting setup of file: C:\Project\bin\Library1.dll 
LOG: Entering download cache setup phase. 
LOG: Assembly Name is: Library1, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed 
WRN: Comparing the assembly name resulted in the mismatch: NAME 
ERR: The assembly reference did not match the assembly definition found. 
ERR: Setup failed with hr = 0x80131040. 
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
+0

更新添加內聯 – 2010-11-24 02:29:10

相關問題