Я работаю над веб-приложением, использующим asp.net 4.0.
У меня есть несколько библиотек, которые я использую в GAC, у которых есть некоторые встроенные зависимости от старых библиотек.
Я настроил сборки так, чтобы зависимость перенаправлялась на правильную версию dll на моем компьютере. Это прекрасно работает в приложениях версии 3.5 или ниже, однако, когда я пытаюсь создать приложение asp.net 4.0 на основе тех же библиотек, оно захлебывается с ошибкой вроде:
Could not load file or assembly 'ControlReferencedByMyDll, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)
где моя версия ControlReferencedByMyDll - версия 2.0.1.0.
Я не смог найти утилиту конфигурации GAC для .net 4.0, но в моем файле machine.config (в папках Framework и Framework64 для .net 4.0) я добавил что-то вроде:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ControlReferencedByMyDll" PublicKeyToken="XXXXXXXXXXXXXXXX"/>
<bindingRedirect oldVersion="1.0.0.0-9.9.9.9" newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
чтобы увидеть, была ли это проблема.
Я даже пытался добавить атрибут applyTo = "v2.0.50727" в assemblyBinding, чтобы увидеть, если это имеет значение.
но, похоже, нет.
Кто-нибудь еще имел эту проблему? и что более важно, кто-нибудь может помочь мне решить эту проблему?