Мы динамически загружаются сборки при запуске и при добавлении их в качестве ссылки:Очистка файлов температуры ASP.NET по применению перезапустить
BuildManager.AddReferencedAssembly(assembly);
Приложение поддерживает установку новых плагинов во время выполнения. Следуя действию установки/удаления, мы перезапускаем веб-приложение. Я пробовал:
HostingEnvironment.InitiateShutdown();
и
System.Web.HttpRuntime.UnloadAppDomain();
Однако, новая версия плагина не загружается - я считаю, что это происходит из-за того, как ASP.NET агрессивно кэшировать ссылки сборки - особенно ASP Контроллеры .NET MVC.
В производстве это не должно быть проблемой, поскольку версия сборки плагина будет увеличиваться каждый раз. Однако в разработке это больше проблема, поскольку мы не хотим менять номер версии каждый раз, когда мы вносим небольшие изменения в плагин.
Как мы можем принудительно очистить файлы temp asp.net, либо программно, либо используя событие post build?
Одним из решений является «прикосновение» к global.asax, но это кажется немного взломанным для меня.
Мы сделали что-то подобное и в конце концов обосновался на: http://stackoverflow.com/questions/407713/how-to-restart-asp-net-application-besides-modifying-web-config – dash