Ваша «проблема» в том, что есть установленный файл политики, в котором указано, что запросы для 5.1.3102.2180 могут быть перенаправлены на 5.02.6002.18005.
Обычно это хорошо. он позволяет приложениям указывать версию, для которой они были созданы, в своем манифесте, но когда вводятся критические исправления безопасности, ОС может перенаправлять приложения на совместимые версии.
Итак, что здесь произойдет, ваше приложение будет связываться с GDI + 5.1 на любом ПК, на котором установлена только версия 5.1. но на любых компьютерах с 5.2 GDI + вы будете перенаправлены на него.
Если у вас есть искренняя причина, по которой вы хотите использовать 5.1, даже когда 5.2 доступна ... Я думаю, вы можете использовать файл конфигурации приложения, чтобы управлять этим.
Создайте файл с именем yourapp.exe.config - если модуль в вашем приложении, импортирующий GDI +, является dll, то это будет dll.dll.2.config.
Однако я не уверен, как структурировать bindingRedirect. т.е. учитывая перенаправление файлов политики, я не уверен, нужно ли вам перенаправить старую версию обратно на себя или новую версию обратно на старую версию. или что. может потребоваться метод проб и ошибок.
Данные в файле .config выглядят почти так же, как данные в файле манифеста. Что-то вроде этого (который почти точно имитирует содержимое файла политики, установленного в winsxs, который выполняет перенаправление, которое вам не нужно).
<configuration>
<windows>
<assemblyBinding xmlns=...>
<dependentAssembly name="GdiPlus...>
<bindingRedirect oldVersion="5.1.x.x" newVersion="5.1.x.x"/>
Чтобы упростить выбор oldVersion, он поддерживает синтаксис диапазона. так
oldVersion="5.0.0.0-5.3.0.0"
будет простым способом гарантировать, что весь диапазон версий GdiPlus будет перенаправлен на определенную версию.
person
Chris Becke
schedule
05.09.2009