.Net Reflection LoadFrom от кеширования с IE9 - PullRequest
0 голосов
/ 02 марта 2012

У нас есть приложение Windows Forms, которое загружает различные формы в виде вкладок.Формы хранятся в различных библиотеках DLL, которые хранятся на веб-сайте компании в интрасети.Панель запуска приложений использует отражение для загрузки DLL из URL, а затем открывает определенный запрошенный класс (форма Windows) и отображается в интерфейсе вкладок.Когда мы делаем какое-либо обновление до форм, мы просто копируем DLL-файлы в папку веб-сайта интрасети, а затем Launcher извлекает последнюю версию.

За последние 6-7 лет, пока IE9 не был запущен, все шло гладко.В IE 9 они переделали модуль кеширования.В результате наши библиотеки DLL с кодом отражения кэшируются навсегда.Мы больше не можем делать обновления, просто заменив файл DLL, надеясь, что ядро ​​отражения загрузит последнюю DLL, посмотрев на дату или размер файла.Кэширование хорошо, если оно обновляет кеш при изменении источника.

Мы сталкиваемся с серьезными проблемами, так как клиенты должны удалить свой кэш IE9, или иногда нам нужно перейти к их столу и удалить «Users / AppData / [зашифрованные папки]».

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

Assembly RemoteAssembly;
RemoteAssembly = Assembly.LoadFrom(assemblyURL);
return RemoteAssembly.CreateInstance(typeName);
...