Ler em inglês

Partilhar via


AppDomain.ExecuteAssembly Método

Definição

Executa o assembly contido no arquivo especificado.

Sobrecargas

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

Executa o assembly contido no arquivo especificado usando a evidência, os argumentos, o valor de hash e o algoritmo de hash especificados.

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

Executa o assembly contido no arquivo especificado, usando a evidência e os argumentos especificados.

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

Executa o assembly contido no arquivo especificado usando os argumentos, o valor de hash e o algoritmo de hash especificados.

ExecuteAssembly(String, Evidence)
Obsoleto.

Executa o assembly contido no arquivo especificado usando a evidência especificada.

ExecuteAssembly(String, String[])

Executa o assembly contido no arquivo especificado usando argumentos especificados.

ExecuteAssembly(String)

Executa o assembly contido no arquivo especificado.

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

Cuidado

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.

Executa o assembly contido no arquivo especificado usando a evidência, os argumentos, o valor de hash e o algoritmo de hash especificados.

C#
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
C#
[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);

Parâmetros

assemblyFile
String

O nome do arquivo que contém o assembly a ser executado.

assemblySecurity
Evidence

A evidência fornecida para o assembly.

args
String[]

Os argumentos para o ponto de entrada do assembly.

hashValue
Byte[]

Representa o valor do código hash computado.

hashAlgorithm
AssemblyHashAlgorithm

Representa o algoritmo de hash usado pelo manifesto do assembly.

Retornos

O valor retornado pelo ponto de entrada do assembly.

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado.

assemblyFile não é um assembly válido para o runtime carregado no momento.

A operação é tentada em um domínio de aplicativo descarregado.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

assemblySecurity não é null. Quando a política CAS herdada não está habilitada, assemblySecurity deve ser null.

O assembly especificado não tem ponto de entrada.

Exemplos

O exemplo a seguir demonstra como usar uma das sobrecargas de ExecuteAssembly em dois domínios diferentes.

C#
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"
   }
}

Comentários

O assembly começa a ser executado no ponto de entrada especificado no cabeçalho do .NET Framework.

Este método não cria um novo processo ou um domínio de aplicativo e não executa o método de ponto de entrada em um novo thread.

Este método carrega assemblies usando o método LoadFile. Também é possível executar assemblies usando o método ExecuteAssemblyByName, que carrega assemblies usando o método Load.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões (Obsoleto)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

ExecuteAssembly(String, Evidence, String[])

Cuidado

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.

Executa o assembly contido no arquivo especificado, usando a evidência e os argumentos especificados.

C#
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args);
C#
[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);

Parâmetros

assemblyFile
String

O nome do arquivo que contém o assembly a ser executado.

assemblySecurity
Evidence

A evidência fornecida para o assembly.

args
String[]

Os argumentos para o ponto de entrada do assembly.

Retornos

O valor retornado pelo ponto de entrada do assembly.

Implementações

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado.

assemblyFile não é um assembly válido para o runtime carregado no momento.

A operação é tentada em um domínio de aplicativo descarregado.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

assemblySecurity não é null. Quando a política CAS herdada não está habilitada, assemblySecurity deve ser null.

O assembly especificado não tem ponto de entrada.

Exemplos

O exemplo a seguir demonstra como usar uma das sobrecargas de ExecuteAssembly em dois domínios diferentes.

C#
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"
   }
}

Comentários

O assembly começa a ser executado no ponto de entrada especificado no cabeçalho do .NET Framework.

Este método não cria um novo processo ou um domínio de aplicativo e não executa o método de ponto de entrada em um novo thread.

Este método carrega assemblies usando o método LoadFile. Também é possível executar assemblies usando o método ExecuteAssemblyByName, que carrega assemblies usando o método Load.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões (Obsoleto)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

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

Origem:
AppDomain.cs
Origem:
AppDomain.cs
Origem:
AppDomain.cs

Cuidado

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

Executa o assembly contido no arquivo especificado usando os argumentos, o valor de hash e o algoritmo de hash especificados.

C#
public int ExecuteAssembly (string assemblyFile, string?[]? args, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
C#
[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);
C#
public int ExecuteAssembly (string assemblyFile, string[] args, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);

Parâmetros

assemblyFile
String

O nome do arquivo que contém o assembly a ser executado.

args
String[]

Os argumentos para o ponto de entrada do assembly.

hashValue
Byte[]

Representa o valor do código hash computado.

hashAlgorithm
AssemblyHashAlgorithm

Representa o algoritmo de hash usado pelo manifesto do assembly.

Retornos

O valor retornado pelo ponto de entrada do assembly.

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado.

assemblyFile não é um assembly válido para o runtime carregado no momento.

A operação é tentada em um domínio de aplicativo descarregado.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

O assembly especificado não tem ponto de entrada.

Exemplos

O exemplo a seguir demonstra como usar uma das sobrecargas de ExecuteAssembly em dois domínios diferentes.

C#
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"
   }
}

Comentários

Atenção

O CAS (Segurança de Acesso do Código) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não aceitam anotações de CAS e produzem erros caso as APIs relacionadas ao CAS sejam usadas. Os desenvolvedores devem buscar meios alternativos de realizar tarefas de segurança.

O assembly começa a ser executado no ponto de entrada especificado no cabeçalho do .NET Framework.

Este método não cria um novo processo ou um domínio de aplicativo e não executa o método de ponto de entrada em um novo thread.

Este método carrega assemblies usando o método LoadFile. Também é possível executar assemblies usando o método ExecuteAssemblyByName, que carrega assemblies usando o método Load.

Aplica-se a

.NET 9 e outras versões
Produto Versões (Obsoleto)
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5 (6, 7, 8, 9)
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ExecuteAssembly(String, Evidence)

Cuidado

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.

Executa o assembly contido no arquivo especificado usando a evidência especificada.

C#
public int ExecuteAssembly (string assemblyFile, System.Security.Policy.Evidence assemblySecurity);
C#
[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);

Parâmetros

assemblyFile
String

O nome do arquivo que contém o assembly a ser executado.

assemblySecurity
Evidence

Evidência para carregar o assembly.

Retornos

O valor retornado pelo ponto de entrada do assembly.

Implementações

Atributos

Exceções

assemblyFile é null.

assemblyFile não foi encontrado.

assemblyFile não é um assembly válido para o runtime carregado no momento.

A operação é tentada em um domínio de aplicativo descarregado.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

O assembly especificado não tem ponto de entrada.

Exemplos

O exemplo a seguir demonstra como usar uma das sobrecargas de ExecuteAssembly em dois domínios diferentes.

C#
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"
   }
}

Comentários

O assembly começa a ser executado no ponto de entrada especificado no cabeçalho do .NET Framework.

O ExecuteAssembly método não cria um novo processo ou domínio de aplicativo e não executa o método de ponto de entrada em um novo thread.

Este método carrega assemblies usando o método LoadFile. Também é possível executar assemblies usando o método ExecuteAssemblyByName, que carrega assemblies usando o método Load.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões (Obsoleto)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

ExecuteAssembly(String, String[])

Origem:
AppDomain.cs
Origem:
AppDomain.cs
Origem:
AppDomain.cs

Executa o assembly contido no arquivo especificado usando argumentos especificados.

C#
public int ExecuteAssembly (string assemblyFile, string?[]? args);
C#
public int ExecuteAssembly (string assemblyFile, string[] args);

Parâmetros

assemblyFile
String

O nome do arquivo que contém o assembly a ser executado.

args
String[]

Os argumentos para o ponto de entrada do assembly.

Retornos

O valor retornado pelo ponto de entrada do assembly.

Exceções

assemblyFile é null.

assemblyFile não foi encontrado.

assemblyFile não é um assembly válido para o runtime carregado no momento.

A operação é tentada em um domínio de aplicativo descarregado.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

O assembly especificado não tem ponto de entrada.

Exemplos

O exemplo a seguir demonstra como usar uma das sobrecargas de ExecuteAssembly em dois domínios diferentes.

C#
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"
   }
}

Comentários

O assembly começa a ser executado no ponto de entrada especificado no cabeçalho do .NET Framework.

Este método não cria um novo processo ou um domínio de aplicativo e não executa o método de ponto de entrada em um novo thread.

Este método carrega assemblies usando o método LoadFile. Também é possível executar assemblies usando o método ExecuteAssemblyByName, que carrega assemblies usando o método Load.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ExecuteAssembly(String)

Origem:
AppDomain.cs
Origem:
AppDomain.cs
Origem:
AppDomain.cs

Executa o assembly contido no arquivo especificado.

C#
public int ExecuteAssembly (string assemblyFile);

Parâmetros

assemblyFile
String

O nome do arquivo que contém o assembly a ser executado.

Retornos

O valor retornado pelo ponto de entrada do assembly.

Implementações

Exceções

assemblyFile é null.

assemblyFile não foi encontrado.

assemblyFile não é um assembly válido para o runtime carregado no momento.

A operação é tentada em um domínio de aplicativo descarregado.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.

O assembly especificado não tem ponto de entrada.

Exemplos

O exemplo a seguir demonstra como usar uma das sobrecargas de ExecuteAssembly em dois domínios diferentes.

C#
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"
   }
}

Comentários

O assembly começa a ser executado no ponto de entrada especificado no cabeçalho do .NET Framework.

Este método não cria um novo processo ou um domínio de aplicativo e não executa o método de ponto de entrada em um novo thread.

Este método carrega assemblies usando o método LoadFile. Também é possível executar assemblies usando o método ExecuteAssemblyByName, que carrega assemblies usando o método Load.

Para criar o AppDomain para carregar e executar, use o CreateDomain método .

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1