2011-12-29 10 views
1

MAFアドインを設定する方法はありますか?System.Reflection.Assembly.GetEntryAssembly()はアドインのAppDomainから呼び出されたときにアドインのメインアセンブリへの参照を返しますか?MAF AddInのEntryAssembly

背景:私のプロジェクトの特定のセキュリティ要件を満たすためには、別個のAppDomainにアドインをロードする必要があります。また、GetEntryAssembly()の結果は、アドインのAppDomain 。私は、MSDN MAF walkthroughに配置されたパターンに従ってテストケースを開発しました。私のテストケースでは、アセンブリが別のAppDomain(またはプロセス)にロードされている場合、GetEntryAssembly()は常にnullを返します。

「GetEntryAssemblyメソッドは、マネージアセンブリがアンマネージドアプリケーションからロードされたときにNothingを返すことができます」というメッセージが表示されます。これはMAFのAppDomain境界を越えるプロキシに適用されますか?

問題のアセンブリと実行可能ファイルはすべて厳密な名前を持っています。

答えて

1

あなたはこれについて正しいです。 Nothing(null)を返します。

しかしSystem.Reflection.Assembly.GetEntryAssemblyで、「戻り値が」と記載されていることに注意してください:

デフォルトのアプリケーション ドメイン内のプロセス実行可能であるアセンブリ、または のAppDomainで実行された最初の実行可能ファイルを.ExecuteAssembly

AppDomain.ExecuteAssemblyは、.NETアプリケーションのメインメソッドを実行するために使用されます。あなたのケースでは、アプリケーションは実行されません。何が行われているかは、hereで説明されています。

ExecuteAssemblyの呼び出しがないため、Nothing(null)を返すのが理にかなっています。

代わりにGetExecutingAssemblyを使用してください。

関連する問題