Переадресация привязки сборки не работает - PullRequest
29 голосов
/ 16 августа 2010

Я пытаюсь настроить перенаправление привязки сборки, используя следующий app.config:

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

Я запускаю программу на компьютере с версией 9.0.242.0 в GAC, суказанный токен открытого ключа.CLR, похоже, даже не пытается перенаправить привязку для использования этой версии.

Вот что я получаю в fuslogvw.exe:

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.

Когда я попытался поместить dll версии 9.0.242.0 в путь исследования, я получил это вместо:

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.

Обратите внимание, что я также пытался изменить перенаправление на использование "9.0.242.0"вместо" 9.0.0.0 "в app.config, и это не сработало, хотя я не думаю, что это должно иметь какое-либо значение.

Из того, что я понимаю, весь смысл перенаправления привязки заключается виспользовать версию, которая не соответствует той, с которой была построена программа.Я что-то здесь упускаю?Возможно ли то, что я пытаюсь сделать, и если да, есть ли какая-то идея, почему это не работает?

Приветствия, Адам

Ответы [ 11 ]

0 голосов
/ 08 сентября 2016

Если это кому-нибудь поможет, я столкнулся с этим, потому что я не поместил полную версию для newVersion.то есть у меня было newVersion="3.0.1" вместо newVersion="3.0.1.0"

...