Сбой перенаправления привязки - разные publicKeyToken - PullRequest
8 голосов
/ 27 октября 2011

У меня есть приложение, которое ссылается на эту сборку в средах разработки:

name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="89845dcd8080cc91" version="9.0.242.0"

Однако, живой сервер содержит старую версию этой библиотеки:

name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="b77a5c561934e089" version="3.2.2917.0"

Как видите, publicKeyToken отличается. Я добавил bindingRedirect в app.config:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="89845dcd8080cc91" />
            <bindingRedirect oldVersion="9.0.242.0" newVersion="3.2.2917.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

но я все еще получаю ошибку:

Необработанное исключение: System.IO.FileNotFoundException: не удалось загрузить файл или задница включают 'Microsoft.Data.SqlXml, версия = 3.2.2917.0, Культура = нейтральная, PublicKeyToke n = 89845dcd8080cc91 'или один из его зависимостей. Система не может найти указанный файл. Имя файла: 'Microsoft.Data.SqlXml, версия = 3.2.2917.0, культура = нейтральная, PublicKe yToken = 89845dcd8080cc91 '---> System.IO.FileNotFoundException: может не загруженный файл или сборка 'Microsoft.Data.SqlXml, версия = 9.0.242.0, Культура = нейтральная, Publi cKeyToken = 89845dcd8080cc91 'или одна из ее зависимостей. Система не может найти указанный файл. Имя файла: 'Microsoft.Data.SqlXml, версия = 9.0.242.0, культура = нейтральная, PublicKey Знак = 89845dcd8080cc91'

Можно ли в этом случае перенаправить на более старую версию библиотеки?

1 Ответ

8 голосов
/ 27 октября 2011

Вы не можете перенаправить сборку, если открытый ключ отличается, я боюсь, вам придется перекомпилировать для более старой версии и удалить перенаправление.

...