Я пытаюсь установить какое-то приложение для автоматического обновления. Идея состоит в том, чтобы иметь неизменяемый код, который будет ссылаться на DLL со всей логикой, содержащейся в DLL. По сути, он будет работать, просматривая обновления каждые 5 минут. Если доступно обновление, вызывается метод dispose, который удаляет все из DLL, затем загружает новую DLL и ссылается на нее, а затем запускает метод запуска.
У меня есть что-то вроде этого:
var DLL = Assembly.LoadFile(path_to_appdata+"dll_name.dll");
runner_dll = DLL.GetType("dll_namespace_name.Manager");
var c = Activator.CreateInstance(runner_dll);
var method = runner_dll.GetMethod("run_client");
method.Invoke(c, new object[] { });
и это работает. Однако дело в том, что я не могу обновить DLL, потому что она используется. Я читал, что не могу удалить его напрямую из сборки, но могу загрузить его в домен приложения, а затем выгрузить домен приложения. Тем не менее, я пытался это сделать, но, похоже, у меня это не работает.
Любая помощь будет очень признательна.