Поделиться через


AppDomain.ExecuteAssembly Метод

Определение

Выполняет сборку, содержащуюся в указанном файле.

Перегрузки

ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)
Устаревшие..

Выполняет сборку, содержащуюся в указанном файле, с использованием заданного свидетельства, аргументов, хэш-значения и хэш-алгоритма.

ExecuteAssembly(String, Evidence, String[])
Устаревшие..

Выполняет сборку, содержащуюся в указанном файле, с использованием заданного свидетельства и аргументов.

ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)
Устаревшие..

Выполняет сборку, содержащуюся в указанном файле, с использованием заданных аргументов, хэш-значения и хэш-алгоритма.

ExecuteAssembly(String, Evidence)
Устаревшие..

Выполняет сборку, содержащуюся в указанном файле, с использованием заданного свидетельства.

ExecuteAssembly(String, String[])

Выполняет сборку, содержащуюся в указанном файле, с использованием заданных аргументов.

ExecuteAssembly(String)

Выполняет сборку, содержащуюся в указанном файле.

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

Внимание!

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(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

Параметры

assemblyFile
String

Имя файла, содержащего сборку, которую необходимо выполнить.

assemblySecurity
Evidence

Предоставленное свидетельство для сборки.

args
String[]

Аргументы, передаваемые в точку входа сборки.

hashValue
Byte[]

Представляет значение вычисляемого хэш-кода.

hashAlgorithm
AssemblyHashAlgorithm

Представляет хэш-алгоритм, используемый манифестом сборки.

Возвращаемое значение

Значение, возвращаемое точкой входа сборки.

Атрибуты

Исключения

assemblyFile имеет значение null.

assemblyFile не найден.

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения.

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Сборка или модуль был загружен дважды с двумя разными свидетельствами.

assemblySecurity не является null. Если не включена политика разграничения доступа кода для кода предыдущей версии, assemblySecurity должно иметь значение null.

Указанная сборка не имеет точку входа.

Примеры

В следующем примере показано использование одной из перегрузок в ExecuteAssembly двух разных доменах.

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

Комментарии

Сборка начинается в точке входа, указанной в заголовке платформа .NET Framework.

Этот метод не создает новый процесс или домен приложения и не выполняет метод точки входа в новом потоке.

Этот метод загружает сборки с помощью LoadFile метода . Сборки также можно выполнять с помощью ExecuteAssemblyByName метода , который загружает сборки с помощью Load метода .

Применяется к

ExecuteAssembly(String, Evidence, String[])

Внимание!

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:
 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

Параметры

assemblyFile
String

Имя файла, содержащего сборку, которую необходимо выполнить.

assemblySecurity
Evidence

Предоставленное свидетельство для сборки.

args
String[]

Аргументы, передаваемые в точку входа сборки.

Возвращаемое значение

Значение, возвращаемое точкой входа сборки.

Реализации

Атрибуты

Исключения

assemblyFile имеет значение null.

assemblyFile не найден.

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения.

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Сборка или модуль был загружен дважды с двумя разными свидетельствами.

assemblySecurity не является null. Если не включена политика разграничения доступа кода для кода предыдущей версии, assemblySecurity должно иметь значение null.

Указанная сборка не имеет точку входа.

Примеры

В следующем примере показано использование одной из перегрузок в ExecuteAssembly двух разных доменах.

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

Комментарии

Сборка начинается в точке входа, указанной в заголовке платформа .NET Framework.

Этот метод не создает новый процесс или домен приложения и не выполняет метод точки входа в новом потоке.

Этот метод загружает сборки с помощью LoadFile метода . Сборки также можно выполнять с помощью ExecuteAssemblyByName метода , который загружает сборки с помощью Load метода .

Применяется к

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

Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs

Внимание!

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

Выполняет сборку, содержащуюся в указанном файле, с использованием заданных аргументов, хэш-значения и хэш-алгоритма.

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

Параметры

assemblyFile
String

Имя файла, содержащего сборку, которую необходимо выполнить.

args
String[]

Аргументы, передаваемые в точку входа сборки.

hashValue
Byte[]

Представляет значение вычисляемого хэш-кода.

hashAlgorithm
AssemblyHashAlgorithm

Представляет хэш-алгоритм, используемый манифестом сборки.

Возвращаемое значение

Значение, возвращаемое точкой входа сборки.

Атрибуты

Исключения

assemblyFile имеет значение null.

assemblyFile не найден.

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения.

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Сборка или модуль был загружен дважды с двумя разными свидетельствами.

Указанная сборка не имеет точку входа.

Примеры

В следующем примере показано использование одной из перегрузок в ExecuteAssembly двух разных доменах.

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

Комментарии

Внимание!

Безопасность доступа к коду (CAS) не рекомендуется использовать во всех версиях платформа .NET Framework и .NET. В последних версиях .NET заметки CAS не учитываются и при использовании API, связанных с CAS, возникают ошибки. Разработчикам следует искать альтернативные средства для выполнения задач безопасности.

Сборка начинается в точке входа, указанной в заголовке платформа .NET Framework.

Этот метод не создает новый процесс или домен приложения и не выполняет метод точки входа в новом потоке.

Этот метод загружает сборки с помощью LoadFile метода . Сборки также можно выполнять с помощью ExecuteAssemblyByName метода , который загружает сборки с помощью Load метода .

Применяется к

ExecuteAssembly(String, Evidence)

Внимание!

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:
 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

Параметры

assemblyFile
String

Имя файла, содержащего сборку, которую необходимо выполнить.

assemblySecurity
Evidence

Свидетельство для загрузки сборки.

Возвращаемое значение

Значение, возвращаемое точкой входа сборки.

Реализации

Атрибуты

Исключения

assemblyFile имеет значение null.

assemblyFile не найден.

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения.

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Сборка или модуль был загружен дважды с двумя разными свидетельствами.

Указанная сборка не имеет точку входа.

Примеры

В следующем примере показано использование одной из перегрузок в ExecuteAssembly двух разных доменах.

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

Комментарии

Сборка начинается в точке входа, указанной в заголовке платформа .NET Framework.

Метод ExecuteAssembly не создает новый процесс или домен приложения и не выполняет метод точки входа в новом потоке.

Этот метод загружает сборки с помощью LoadFile метода . Сборки также можно выполнять с помощью ExecuteAssemblyByName метода , который загружает сборки с помощью Load метода .

Применяется к

ExecuteAssembly(String, String[])

Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs

Выполняет сборку, содержащуюся в указанном файле, с использованием заданных аргументов.

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

Параметры

assemblyFile
String

Имя файла, содержащего сборку, которую необходимо выполнить.

args
String[]

Аргументы, передаваемые в точку входа сборки.

Возвращаемое значение

Значение, возвращаемое точкой входа сборки.

Исключения

assemblyFile имеет значение null.

assemblyFile не найден.

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения.

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Сборка или модуль был загружен дважды с двумя разными свидетельствами.

Указанная сборка не имеет точку входа.

Примеры

В следующем примере показано использование одной из перегрузок в ExecuteAssembly двух разных доменах.

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

Комментарии

Сборка начинается в точке входа, указанной в заголовке платформа .NET Framework.

Этот метод не создает новый процесс или домен приложения и не выполняет метод точки входа в новом потоке.

Этот метод загружает сборки с помощью LoadFile метода . Сборки также можно выполнять с помощью ExecuteAssemblyByName метода , который загружает сборки с помощью Load метода .

Применяется к

ExecuteAssembly(String)

Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs

Выполняет сборку, содержащуюся в указанном файле.

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

Параметры

assemblyFile
String

Имя файла, содержащего сборку, которую необходимо выполнить.

Возвращаемое значение

Значение, возвращаемое точкой входа сборки.

Реализации

Исключения

assemblyFile имеет значение null.

assemblyFile не найден.

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения.

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Сборка или модуль был загружен дважды с двумя разными свидетельствами.

Указанная сборка не имеет точку входа.

Примеры

В следующем примере показано использование одной из перегрузок в ExecuteAssembly двух разных доменах.

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

Комментарии

Сборка начинается в точке входа, указанной в заголовке платформа .NET Framework.

Этот метод не создает новый процесс или домен приложения и не выполняет метод точки входа в новом потоке.

Этот метод загружает сборки с помощью LoadFile метода . Сборки также можно выполнять с помощью ExecuteAssemblyByName метода , который загружает сборки с помощью Load метода .

Чтобы создать AppDomain для загрузки и выполнения, используйте CreateDomain метод .

Применяется к