Freigeben über


AppDomain.ExecuteAssembly Methode

Definition

Führt die Assembly in der angegebenen Datei aus.

Überlädt

ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)
Veraltet.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise, Argumente, des Hashwerts und Hashalgorithmus aus.

ExecuteAssembly(String, Evidence, String[])
Veraltet.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise und Argumente aus.

ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)
Veraltet.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente, des Hashwerts und Hashalgorithmus aus.

ExecuteAssembly(String, Evidence)
Veraltet.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise aus.

ExecuteAssembly(String, String[])

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente aus.

ExecuteAssembly(String)

Führt die Assembly in der angegebenen Datei aus.

ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)

Achtung

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise, Argumente, des Hashwerts und Hashalgorithmus aus.

public:
 int ExecuteAssembly(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ assemblySecurity, cli::array <System::String ^> ^ args, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
member this.ExecuteAssembly : string * System.Security.Policy.Evidence * string[] * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> int
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
member this.ExecuteAssembly : string * System.Security.Policy.Evidence * string[] * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> int
Public Function ExecuteAssembly (assemblyFile As String, assemblySecurity As Evidence, args As String(), hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Integer

Parameter

assemblyFile
String

Der Name der Datei mit der auszuführenden Assembly.

assemblySecurity
Evidence

Der angegebene Beweis für die Assembly.

args
String[]

Die Argumente für den Einstiegspunkt der Assembly.

hashValue
Byte[]

Stellt den Wert des errechneten Hashcodes dar.

hashAlgorithm
AssemblyHashAlgorithm

Stellt den vom Assemblymanifest verwendeten Hashalgorithmus dar.

Gibt zurück

Der vom Einstiegspunkt der Assembly zurückgegebene Wert.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden.

assemblyFile ist keine gültige Assembly für die aktuell geladene Runtime.

Der Vorgang wird für eine entladene Anwendungsdomäne ausgeführt.

Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.

assemblySecurity ist nicht null. Wenn die Legacy-CAS-Richtlinie nicht aktiviert ist, sollte assemblySecurity dem Wert null entsprechen.

Die angegebene Assembly verfügt über keinen Einstiegspunkt.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung einer der Überladungen von ExecuteAssembly in zwei verschiedenen Domänen.

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   AppDomain^ otherDomain = AppDomain::CreateDomain( "otherDomain" );
   currentDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on [default]"
   otherDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on otherDomain"
}
class ExecuteAssemblySnippet {
   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"
   }
}
open System

let currentDomain = AppDomain.CurrentDomain
let otherDomain = AppDomain.CreateDomain "otherDomain"

currentDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on [default]"

otherDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on otherDomain"
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

End Module 'Test

Hinweise

Die Assembly beginnt mit der Ausführung an dem im .NET Framework-Header angegebenen Einstiegspunkt.

Diese Methode erstellt keinen neuen Prozess oder eine neue Anwendungsdomäne und führt die Einstiegspunktmethode nicht für einen neuen Thread aus.

Diese Methode lädt Assemblys mithilfe der LoadFile -Methode. Sie können Assemblys auch mit der ExecuteAssemblyByName -Methode ausführen, die Assemblys mit der Load -Methode lädt.

Gilt für:

ExecuteAssembly(String, Evidence, String[])

Achtung

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise und Argumente aus.

public:
 virtual int ExecuteAssembly(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ assemblySecurity, cli::array <System::String ^> ^ args);
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args);
abstract member ExecuteAssembly : string * System.Security.Policy.Evidence * string[] -> int
override this.ExecuteAssembly : string * System.Security.Policy.Evidence * string[] -> int
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member ExecuteAssembly : string * System.Security.Policy.Evidence * string[] -> int
override this.ExecuteAssembly : string * System.Security.Policy.Evidence * string[] -> int
Public Function ExecuteAssembly (assemblyFile As String, assemblySecurity As Evidence, args As String()) As Integer

Parameter

assemblyFile
String

Der Name der Datei mit der auszuführenden Assembly.

assemblySecurity
Evidence

Der angegebene Beweis für die Assembly.

args
String[]

Die Argumente für den Einstiegspunkt der Assembly.

Gibt zurück

Der vom Einstiegspunkt der Assembly zurückgegebene Wert.

Implementiert

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden.

assemblyFile ist keine gültige Assembly für die aktuell geladene Runtime.

Der Vorgang wird für eine entladene Anwendungsdomäne ausgeführt.

Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.

assemblySecurity ist nicht null. Wenn die Legacy-CAS-Richtlinie nicht aktiviert ist, sollte assemblySecurity dem Wert null entsprechen.

Die angegebene Assembly verfügt über keinen Einstiegspunkt.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung einer der Überladungen von ExecuteAssembly in zwei verschiedenen Domänen.

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   AppDomain^ otherDomain = AppDomain::CreateDomain( "otherDomain" );
   currentDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on [default]"
   otherDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on otherDomain"
}
class ExecuteAssemblySnippet {
   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"
   }
}
open System

let currentDomain = AppDomain.CurrentDomain
let otherDomain = AppDomain.CreateDomain "otherDomain"

currentDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on [default]"

otherDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on otherDomain"
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

End Module 'Test

Hinweise

Die Assembly beginnt mit der Ausführung an dem im .NET Framework-Header angegebenen Einstiegspunkt.

Diese Methode erstellt keinen neuen Prozess oder eine neue Anwendungsdomäne und führt die Einstiegspunktmethode nicht für einen neuen Thread aus.

Diese Methode lädt Assemblys mithilfe der LoadFile -Methode. Sie können Assemblys auch mit der ExecuteAssemblyByName -Methode ausführen, die Assemblys mit der Load -Methode lädt.

Gilt für:

ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)

Quelle:
AppDomain.cs
Quelle:
AppDomain.cs
Quelle:
AppDomain.cs

Achtung

Code Access Security is not supported or honored by the runtime.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente, des Hashwerts und Hashalgorithmus aus.

public:
 int ExecuteAssembly(System::String ^ assemblyFile, cli::array <System::String ^> ^ args, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public int ExecuteAssembly (string assemblyFile, string?[]? args, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public int ExecuteAssembly (string assemblyFile, string?[]? args, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public int ExecuteAssembly (string assemblyFile, string[] args, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
member this.ExecuteAssembly : string * string[] * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> int
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
member this.ExecuteAssembly : string * string[] * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> int
Public Function ExecuteAssembly (assemblyFile As String, args As String(), hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Integer

Parameter

assemblyFile
String

Der Name der Datei mit der auszuführenden Assembly.

args
String[]

Die Argumente für den Einstiegspunkt der Assembly.

hashValue
Byte[]

Stellt den Wert des errechneten Hashcodes dar.

hashAlgorithm
AssemblyHashAlgorithm

Stellt den vom Assemblymanifest verwendeten Hashalgorithmus dar.

Gibt zurück

Der vom Einstiegspunkt der Assembly zurückgegebene Wert.

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden.

assemblyFile ist keine gültige Assembly für die aktuell geladene Runtime.

Der Vorgang wird für eine entladene Anwendungsdomäne ausgeführt.

Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.

Die angegebene Assembly verfügt über keinen Einstiegspunkt.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung einer der Überladungen von ExecuteAssembly in zwei verschiedenen Domänen.

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   AppDomain^ otherDomain = AppDomain::CreateDomain( "otherDomain" );
   currentDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on [default]"
   otherDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on otherDomain"
}
class ExecuteAssemblySnippet {
   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"
   }
}
open System

let currentDomain = AppDomain.CurrentDomain
let otherDomain = AppDomain.CreateDomain "otherDomain"

currentDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on [default]"

otherDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on otherDomain"
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

End Module 'Test

Hinweise

Achtung

Die Codezugriffssicherheit (CAS, Code Access Security) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler*innen sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

Die Assembly beginnt mit der Ausführung an dem im .NET Framework-Header angegebenen Einstiegspunkt.

Diese Methode erstellt keinen neuen Prozess oder eine neue Anwendungsdomäne und führt die Einstiegspunktmethode nicht für einen neuen Thread aus.

Diese Methode lädt Assemblys mithilfe der LoadFile -Methode. Sie können Assemblys auch mit der ExecuteAssemblyByName -Methode ausführen, die Assemblys mit der Load -Methode lädt.

Gilt für:

ExecuteAssembly(String, Evidence)

Achtung

Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise aus.

public:
 virtual int ExecuteAssembly(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ assemblySecurity);
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity);
abstract member ExecuteAssembly : string * System.Security.Policy.Evidence -> int
override this.ExecuteAssembly : string * System.Security.Policy.Evidence -> int
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of ExecuteAssembly which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member ExecuteAssembly : string * System.Security.Policy.Evidence -> int
override this.ExecuteAssembly : string * System.Security.Policy.Evidence -> int
Public Function ExecuteAssembly (assemblyFile As String, assemblySecurity As Evidence) As Integer

Parameter

assemblyFile
String

Der Name der Datei mit der auszuführenden Assembly.

assemblySecurity
Evidence

Beweis für das Laden der Assembly.

Gibt zurück

Der vom Einstiegspunkt der Assembly zurückgegebene Wert.

Implementiert

Attribute

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden.

assemblyFile ist keine gültige Assembly für die aktuell geladene Runtime.

Der Vorgang wird für eine entladene Anwendungsdomäne ausgeführt.

Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.

Die angegebene Assembly verfügt über keinen Einstiegspunkt.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung einer der Überladungen von ExecuteAssembly in zwei verschiedenen Domänen.

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   AppDomain^ otherDomain = AppDomain::CreateDomain( "otherDomain" );
   currentDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on [default]"
   otherDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on otherDomain"
}
class ExecuteAssemblySnippet {
   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"
   }
}
open System

let currentDomain = AppDomain.CurrentDomain
let otherDomain = AppDomain.CreateDomain "otherDomain"

currentDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on [default]"

otherDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on otherDomain"
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

End Module 'Test

Hinweise

Die Assembly beginnt mit der Ausführung an dem im .NET Framework-Header angegebenen Einstiegspunkt.

Die ExecuteAssembly -Methode erstellt keinen neuen Prozess oder eine neue Anwendungsdomäne und führt die Einstiegspunktmethode nicht in einem neuen Thread aus.

Diese Methode lädt Assemblys mithilfe der LoadFile -Methode. Sie können Assemblys auch mit der ExecuteAssemblyByName -Methode ausführen, die Assemblys mit der Load -Methode lädt.

Gilt für:

ExecuteAssembly(String, String[])

Quelle:
AppDomain.cs
Quelle:
AppDomain.cs
Quelle:
AppDomain.cs

Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente aus.

public:
 int ExecuteAssembly(System::String ^ assemblyFile, cli::array <System::String ^> ^ args);
public int ExecuteAssembly (string assemblyFile, string?[]? args);
public int ExecuteAssembly (string assemblyFile, string[] args);
member this.ExecuteAssembly : string * string[] -> int
Public Function ExecuteAssembly (assemblyFile As String, args As String()) As Integer

Parameter

assemblyFile
String

Der Name der Datei mit der auszuführenden Assembly.

args
String[]

Die Argumente für den Einstiegspunkt der Assembly.

Gibt zurück

Der vom Einstiegspunkt der Assembly zurückgegebene Wert.

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden.

assemblyFile ist keine gültige Assembly für die aktuell geladene Runtime.

Der Vorgang wird für eine entladene Anwendungsdomäne ausgeführt.

Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.

Die angegebene Assembly verfügt über keinen Einstiegspunkt.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung einer der Überladungen von ExecuteAssembly in zwei verschiedenen Domänen.

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   AppDomain^ otherDomain = AppDomain::CreateDomain( "otherDomain" );
   currentDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on [default]"
   otherDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on otherDomain"
}
class ExecuteAssemblySnippet {
   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"
   }
}
open System

let currentDomain = AppDomain.CurrentDomain
let otherDomain = AppDomain.CreateDomain "otherDomain"

currentDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on [default]"

otherDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on otherDomain"
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

End Module 'Test

Hinweise

Die Assembly beginnt mit der Ausführung am Einstiegspunkt, der im .NET Framework-Header angegeben ist.

Diese Methode erstellt keinen neuen Prozess oder eine neue Anwendungsdomäne und führt die Einstiegspunktmethode nicht in einem neuen Thread aus.

Diese Methode lädt Assemblys mithilfe der LoadFile -Methode. Sie können Assemblys auch mit der ExecuteAssemblyByName -Methode ausführen, die Assemblys mithilfe der Load -Methode lädt.

Gilt für:

ExecuteAssembly(String)

Quelle:
AppDomain.cs
Quelle:
AppDomain.cs
Quelle:
AppDomain.cs

Führt die Assembly in der angegebenen Datei aus.

public:
 int ExecuteAssembly(System::String ^ assemblyFile);
public:
 virtual int ExecuteAssembly(System::String ^ assemblyFile);
public int ExecuteAssembly (string assemblyFile);
member this.ExecuteAssembly : string -> int
abstract member ExecuteAssembly : string -> int
override this.ExecuteAssembly : string -> int
Public Function ExecuteAssembly (assemblyFile As String) As Integer

Parameter

assemblyFile
String

Der Name der Datei mit der auszuführenden Assembly.

Gibt zurück

Der vom Einstiegspunkt der Assembly zurückgegebene Wert.

Implementiert

Ausnahmen

assemblyFile ist null.

assemblyFile wurde nicht gefunden.

assemblyFile ist keine gültige Assembly für die derzeit geladene Runtime.

Der Vorgang wird für eine entladene Anwendungsdomäne ausgeführt.

Eine Assembly oder ein Modul wurde zweimal mit zwei unterschiedlichen Beweisen geladen.

Die angegebene Assembly verfügt über keinen Einstiegspunkt.

Beispiele

Im folgenden Beispiel wird die Verwendung einer der Überladungen von ExecuteAssembly in zwei verschiedenen Domänen veranschaulicht.

int main()
{
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   AppDomain^ otherDomain = AppDomain::CreateDomain( "otherDomain" );
   currentDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on [default]"
   otherDomain->ExecuteAssembly( "MyExecutable.exe" );
   
   // Prints S"MyExecutable running on otherDomain"
}
class ExecuteAssemblySnippet {
   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"
   }
}
open System

let currentDomain = AppDomain.CurrentDomain
let otherDomain = AppDomain.CreateDomain "otherDomain"

currentDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on [default]"

otherDomain.ExecuteAssembly "MyExecutable.exe"
// Prints "MyExecutable running on otherDomain"
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

End Module 'Test

Hinweise

Die Assembly beginnt mit der Ausführung am Einstiegspunkt, der im .NET Framework-Header angegeben ist.

Diese Methode erstellt keinen neuen Prozess oder eine neue Anwendungsdomäne und führt die Einstiegspunktmethode nicht in einem neuen Thread aus.

Diese Methode lädt Assemblys mithilfe der LoadFile -Methode. Sie können Assemblys auch mit der ExecuteAssemblyByName -Methode ausführen, die Assemblys mithilfe der Load -Methode lädt.

Verwenden Sie CreateDomain die -Methode, um die AppDomain zu laden und auszuführen.

Gilt für: