Как загрузить .exe как сборку .NET?
Можно ли использовать?:
Assembly.LoadFile
Не уверен, что это способ сделать это?
Но когда я пытаюсь использовать этот подход, он выбрасывает Could not load file or assembly "CustomControlLib"
или одну из его зависимостей. Система не может найти указанный файл.
Любые идеи?
Ответы
Ответ 1
Вам нужно будет убедиться, что зависимости также загружены в домен приложения. Если они не расположены автоматически, вы можете подписаться на AppDomain.AssemblyResolve
, чтобы найти и загрузить сборки вручную, если это необходимо.
Например:
private Assembly AssemblyEventHandler(object sender, ResolveEventArgs args)
{
return locatedAssembly;
}
Кроме того, я бы рассмотрел возможность использования Assembly.LoadFrom
, в частности после прочтения это, которое имеет сильное утверждение nobugz и ссылки на некоторые хорошие чтение (все датированы, но по-прежнему должны выдерживать большую часть.)
Ответ 2
Да, вы можете загрузить .Net exe так же, как и загрузку Dll. Ошибка, которую вы получаете, вызвана зависимостями вашего exe. Убедитесь, что эти зависимости можно найти, т.е. Находятся в вашем пути поиска сборки.
Ответ 3
Если вы используете Assembly.LoadFrom()
, зависимости будут загружаться из каталога, в котором находится сборка.
Assembly.LoadFile()
игнорирует все другие DLL и exe файлы в той же папке.
Ответ 4
Да, вы можете использовать Assembly.LoadFile()
. Проверьте свой путь.