AppDomain::ExecuteAssembly Method (String, Evidence, array<String>, array<Byte>, AssemblyHashAlgorithm)

Note: This API is now obsolete. The non-obsolete alternative is ExecuteAssembly.

Executes the assembly contained in the specified file, using the specified evidence, arguments, hash value, and hash algorithm.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[ObsoleteAttribute(L"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 for more information.")]
int ExecuteAssembly(
	String^ assemblyFile, 
	Evidence^ assemblySecurity, 
	array<String^>^ args, 
	array<unsigned char>^ hashValue, 
	AssemblyHashAlgorithm hashAlgorithm


Type: System::String

The name of the file that contains the assembly to execute.

Type: System.Security.Policy::Evidence

The supplied evidence for the assembly.

Type: array<System::String>

The arguments to the entry point of the assembly.

Type: array<System::Byte>

Represents the value of the computed hash code.

Type: System.Configuration.Assemblies::AssemblyHashAlgorithm

Represents the hash algorithm used by the assembly manifest.

Return Value

Type: System::Int32
The value returned by the entry point of the assembly.


assemblyFile is nullptr.


assemblyFile is not found.


assemblyFile is not a valid assembly.


Version 2.0 or later of the common language runtime is currently loaded and assemblyFile was compiled with a later version.


The operation is attempted on an unloaded application domain.


An assembly or module was loaded twice with two different evidences.


assemblySecurity is not nullptr. When legacy CAS policy is not enabled, assemblySecurity should be nullptr.


The specified assembly has no entry point.

The assembly begins executing at the entry point specified in the .NET Framework header.

This method does not create a new process or application domain, and it does not execute the entry point method on a new thread.

This method loads assemblies using the LoadFile method. You can also execute assemblies using the ExecuteAssemblyByName method, which loads assemblies using the Load method.

The following sample demonstrates using one of the overloads of ExecuteAssembly on two different domains.

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"

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1
Obsolete (compiler warning) in 4.6
Obsolete (compiler warning) in 4.5
Obsolete (compiler warning) in 4.5.1
Obsolete (compiler warning) in 4.5.2
Obsolete (compiler warning) in 4

.NET Framework Client Profile

Supported in: 3.5 SP1
Obsolete (compiler warning) in 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft