Я пытаюсь разместить прокси-сервер класса шаблона в новом AppDomain.Невозможно загрузить выполнение сборки в новый AppDomain, FileNotFoundException
У меня есть старый код сценариев, который делает что-то подобное, что содержит этот рабочий код:
_ScriptAppDomain = AppDomain.CreateDomain(scriptDomainFriendlyName);
_ScriptProxy = (IScriptEngineProxy)_ScriptAppDomain.CreateInstanceAndUnwrap(
Assembly.GetExecutingAssembly().FullName,
"LVK.Scripting.ScriptEngineProxy");
Однако, когда я пытаюсь это с моим новым классом, со следующим
_TemplateDomain = AppDomain.CreateDomain(templateDomainFriendlyName);
_TemplateProxy = (ITemplateProxy)_TemplateDomain.CreateInstanceAndUnwrap(
Assembly.GetExecutingAssembly().FullName,
"TextTemplate.TemplateProxy");
I просто получите «FileNotFoundException» со следующей информацией:
Не удалось загрузить файл или сборку «TextTemplate, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = bb70a2e62a722ace 'или одна из его зависимостей. Система не может найти указанный файл.
Что мне не хватает?
В принципе, у меня есть класс Template в пространстве имен TextTemplate (и сборке), который пытается загрузить класс TemplateProxy (спускающийся из MarshalByRefObject) в новый appdomain, но, похоже, моя основная сборка не загружена в этот домен.
Это работает, если я использую старый код, но не с этим новым, но я не могу определить разницу.
Вот еще некоторые детали:
- Ассамблея не зарегистрирована в GAC (ни был старый, который работает)
- Я не переопределяется любое событие AssemblyResolve (ни делал старый, который работ)
Я не прочь обработать событие AssemblyResolve, если это то, что необходимо. Мне показалось странным, что мой старый код работал, и этого не случилось.
вы добавили код для сборки решения? Возможно, это поможет вам получить более подробную информацию. –
Развертывается ли сборка TextTemplate в GAC? –
@ Сэм, нет, это не так, но и не было старой сборки. –