新しいAppDomain内でテキストテンプレートクラスプロキシをホストしようとしています。次実行中のアセンブリを新しいAppDomain、FileNotFoundExceptionにロードできません
_TemplateDomain = AppDomain.CreateDomain(templateDomainFriendlyName);
_TemplateProxy = (ITemplateProxy)_TemplateDomain.CreateInstanceAndUnwrap(
Assembly.GetExecutingAssembly().FullName,
"TextTemplate.TemplateProxy");
Iで、私は私の新しいクラスでこれをしようとすると、しかし
_ScriptAppDomain = AppDomain.CreateDomain(scriptDomainFriendlyName);
_ScriptProxy = (IScriptEngineProxy)_ScriptAppDomain.CreateInstanceAndUnwrap(
Assembly.GetExecutingAssembly().FullName,
"LVK.Scripting.ScriptEngineProxy");
:
私はこの作業のコードが含まれている類似した何かを、いくつかの古いスクリプトコードを、持っていますファイルまたはアセンブリ 'TextTemplateを読み込めませんでした。次のような詳細を含む「FileNotFoundException」を取得してください。バージョン= 1.0.0.0、文化=ニュートラル、PublicKeyToken = bb70a2e62a722ace 'またはその依存関係の1つ。システムは、指定されたファイルを見つけることができません。
私は何が欠けていますか?
基本的には、TemplateProxyクラス(MarshalByRefObjectから降順)を新しいappdomainにロードしようとするTextTemplate名前空間(およびアセンブリ)にTemplateクラスがありますが、メインアセンブリがこのドメインにロードされていないようです。
これは古いコードを使用していても、この新しいコードでは使用できない場合に機能しますが、違いはわかりません。
はここにいくつかの詳細です:
- 総会は、私がどんなに、AssemblyResolveイベントをオーバーライドしていない
- (どちらの作品古いもの、なかった)(どちらも古いものを、やったGACに登録されていません作品)
私はAssemblyResolveイベントを処理することにそれが必要な場合は嫌です。私はちょうど私の古いコードが働いたことが奇妙であることを発見した、そしてこれはしなかった。あなたのアセンブリをAssumying
は、あなたがアセンブリ解決するためのコードを追加しなかった私のためにそれらを解決?たぶん、それはあなたが詳細を取得するのに役立つ可能性があります。 –
TextTemplateアセンブリはGACにデプロイされていますか? –
@Sam、いいえ、古いアセンブリではありませんでした。 –