2010-11-24 10 views
7

Mein Projekt verweist auf Library1.dll und Library2.dll. Library2.dll hat eine Abhängigkeit von Library1.dll, aber es wurde kompiliert, um es unter einem anderen Namen, Library1.Net40.dll..NET-Assembly-Referenz auf einen anderen Namen lösen?

Gibt es eine nette Art und Weise meine Anwendung sagen alle Referenzen für Library1.Net40.dll umleiten zu Library1.dll zu lösen? Vielleicht etwas ähnlich wie Sie Versionen mit einer <bindingRedirect> umleiten können?

Ich habe eine Lösung, die die AppDomain.AssemblyResolve Veranstaltung behandelt, aber es ist ein bisschen wie ein Hack und hoffe, es gibt einen besseren Weg, dies zu tun.

Edit: Als Referenz jedermann, hier ist, wie ich es die AppDomain.AssemblyResolve event mit der Lösung am Ende zu einem anderen Baugruppe zu umleiten.

Antwort

4

Haben Sie versucht, mit dem <codeBase> element zu spielen?

<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> 

(Ungeprüfte, keine Ahnung, ob es funktioniert.)

CF: Ist dieses Update hier setzen, weil es ein bisschen zu lang für die Kommentare ist :)

Gute Idee, danke. Ich habe die Umleitung funktioniert, aber es beschwert sich, weil die Namen unterschiedlich sind, hier ist das Protokoll:

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

Update inline hinzugefügt –

Verwandte Themen