Assembly Binding Redirect funktioniert nicht

Ich versuche, mithilfe der folgenden app.config eine Assemblybindungsumleitung einzurichten:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.AnalysisServices"
                          PublicKeyToken="89845dcd8080cc91" />
        <bindingRedirect oldVersion="10.0.0.0"
                         newVersion="9.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Ich führe das Programm auf einem Computer mit der Version 9.0.242.0 im GAC mit dem angegebenen öffentlichen Schlüsseltoken aus. Die CLR scheint nicht einmal zu versuchen, die Bindung umzuleiten, um diese Version zu verwenden.

Hier ist was ich in fuslogvw.exe bekomme:

LOG: This bind starts in default load context. LOG: Using application configuration file: \Debug\AssemblyRedirectPOC.exe.Config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: Post-policy reference: Microsoft.AnalysisServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices.DLL. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices/Microsoft.AnalysisServices.DLL. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices.EXE. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices/Microsoft.AnalysisServices.EXE. LOG: All probing URLs attempted and failed.

Wenn ich versucht habe, die 9.0.242.0-DLL in den Prüfpfad aufzunehmen, erhalte ich stattdessen Folgendes:

LOG: Assembly download was successful. Attempting setup of file: \Debug\Microsoft.AnalysisServices.dll LOG: Entering run-from-source setup phase. LOG: Assembly Name is: Microsoft.AnalysisServices, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 WRN: Comparing the assembly name resulted in the mismatch: Major Version ERR: The assembly reference did not match the assembly definition found. ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

Bitte beachten Sie, dass ich auch versucht habe, die Umleitung so zu ändern, dass in der app.config "9.0.242.0" anstelle von "9.0.0.0" verwendet wir

Von dem, was ich verstehe, besteht der Sinn des Umleitens einer Bindung darin, eine Version zu verwenden, die nicht mit der übereinstimmt, mit der das Programm erstellt wurde. Fehlt mir hier etwas komplett? Ist das, was ich versuche, möglich und wenn ja, eine Idee, warum es nicht funktioniert?

Cheers, Adam

Antworten auf die Frage(22)

Ihre Antwort auf die Frage