次の方法で共有


AppDomain.ExecuteAssembly メソッド (String, Evidence)

指定したファイルに格納されているアセンブリを、指定した証拠を使用して実行します。

Overloads Public Overridable Function ExecuteAssembly( _
   ByVal assemblyFile As String, _   ByVal assemblySecurity As Evidence _) As Integer Implements _AppDomain.ExecuteAssembly
[C#]
public virtual int ExecuteAssembly(stringassemblyFile,EvidenceassemblySecurity);
[C++]
public: virtual int ExecuteAssembly(String* assemblyFile,Evidence* assemblySecurity);
[JScript]
public function ExecuteAssembly(
   assemblyFile : String,assemblySecurity : Evidence) : int;

パラメータ

  • assemblyFile
    実行するアセンブリが格納されているファイルの名前。
  • assemblySecurity
    アセンブリを読み込むために必要な証拠。

戻り値

アセンブリのエントリ ポイントが返す値。

実装

_AppDomain.ExecuteAssembly

例外

例外の種類 条件
ArgumentNullException assemblyFile が null 参照 (Visual Basic では Nothing) です。
FileNotFoundException assemblyFile が見つかりません。
BadImageFormatException assemblyFile が有効なアセンブリではありません。
AppDomainUnloadedException 操作が、アンロードされたアプリケーション ドメインで試行されています。
SecurityException 呼び出し元に、正しいアクセス許可がありません。要件のセクションを参照してください。

解説

アセンブリは、.NET Framework ヘッダーに指定されているエントリ ポイントで実行を開始します。

ExecuteAssembly メソッドは、新しいプロセスの生成、新しいアプリケーション ドメインの作成、および新しいスレッドでのエントリ ポイント メソッドの実行は行いません。

使用例

[Visual Basic, C#, C++] 2 つの異なるドメインで ExecuteAssembly のオーバーロードの 1 つを使用する方法を次の例に示します。

 
Module Test

   Sub Main()
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      Dim otherDomain As AppDomain = AppDomain.CreateDomain("otherDomain")
      
      currentDomain.ExecuteAssembly("MyExecutable.exe")
      ' Prints "MyExecutable running on [default]"

      otherDomain.ExecuteAssembly("MyExecutable.exe")
      ' Prints "MyExecutable running on otherDomain"
   End Sub 'Main

End Module 'Test

[C#] 
class Test {
   public static void Main() {
      AppDomain currentDomain = AppDomain.CurrentDomain;
      AppDomain otherDomain = AppDomain.CreateDomain("otherDomain");
      
      currentDomain.ExecuteAssembly("MyExecutable.exe");
      // Prints "MyExecutable running on [default]"

      otherDomain.ExecuteAssembly("MyExecutable.exe");
      // Prints "MyExecutable running on otherDomain"
   }
}

[C++] 
int main() {
   AppDomain* currentDomain = AppDomain::CurrentDomain;
   AppDomain* otherDomain = AppDomain::CreateDomain(S"otherDomain");

   currentDomain->ExecuteAssembly(S"MyExecutable.exe");
   // Prints S"MyExecutable running on [default]"

   otherDomain->ExecuteAssembly(S"MyExecutable.exe");
   // Prints S"MyExecutable running on otherDomain"
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

AppDomain クラス | AppDomain メンバ | System 名前空間 | AppDomain.ExecuteAssembly オーバーロードの一覧