AppDomain.ExecuteAssembly Method (String, Evidence, String[])

 
obsoleteCodeEntityM:System.AppDomain.ExecuteAssembly(System.String,System.String[])Note: This API is now obsolete.

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

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

[ObsoleteAttribute("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,
	Evidence assemblySecurity,
	string[] args
)

Parameters

assemblyFile
Type: System.String

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

assemblySecurity
Type: System.Security.Policy.Evidence

The supplied evidence for the assembly.

args
Type: System.String[]

The arguments to the entry point of the assembly.

Return Value

Type: System.Int32

The value returned by the entry point of the assembly.

Exception Condition
ArgumentNullException

assemblyFile is null.

FileNotFoundException

assemblyFile is not found.

BadImageFormatException

assemblyFile is not a valid assembly.

-or-

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

AppDomainUnloadedException

The operation is attempted on an unloaded application domain.

FileLoadException

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

NotSupportedException

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

MissingMethodException

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.

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

SecurityPermission

to load an assembly with evidence. Associated enumeration: SecurityPermissionFlag.ControlEvidence.

FileIOPermission

for access to read from a file or directory, and for access to the information in the path itself. Associated enumerations: FileIOPermissionAccess.Read, FileIOPermissionAccess.PathDiscovery.

WebPermission

for reading a URI that does not begin with "file://".

UIPermission

to execute a console application. Associated enumeration: PermissionState.Unrestricted.

.NET Framework
Available since 1.1
Return to top
Show: