Export (0) Print
Expand All

AppDomain.SetCachePath Method

NOTE: This method is now obsolete. The non-obsolete alternative is CachePath.

Establishes the specified directory path as the location where assemblies are shadow copied.

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

[ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. http://go.microsoft.com/fwlink/?linkid=14202")] 
public void SetCachePath (
	string path
)
/** @attribute ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. http://go.microsoft.com/fwlink/?linkid=14202") */ 
public final void SetCachePath (
	String path
)
ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. http://go.microsoft.com/fwlink/?linkid=14202") 
public final function SetCachePath (
	path : String
)
Not applicable.

Parameters

path

The fully qualified path to the shadow copy location.

Exception typeCondition

AppDomainUnloadedException

The operation is attempted on an unloaded application domain.

The cache path is ignored if the ApplicationName property is not set. See the AppDomainSetup.CachePath property.

For more information on shadow copying see Shadow Copying Assemblies.

This method is now obsolete, and should not be used for new development.

using System;
using System.Security.Policy;  //for evidence object
namespace AppDomainSnippets
{
	class ADShadowCopy
	{
		static void Main(string[] args)
		{

			AppDomainSetup setup = new AppDomainSetup();
			// Shadow copying will not work unless the application has a name.
			setup.ApplicationName = "MyApplication";

			//Create evidence for the new application domain from evidence of
			// current application domain.
			Evidence adevidence = AppDomain.CurrentDomain.Evidence;
			
			// Create a new application domain.
			AppDomain domain = AppDomain.CreateDomain("MyDomain", adevidence, setup);
			
			// MyAssembly.dll is located in the Assemblies subdirectory.
			domain.AppendPrivatePath("Assemblies");
			// MyOtherAssembly.dll and MyThirdAssembly.dll are located in the
			// MoreAssemblies subdirectory.
			domain.AppendPrivatePath("MoreAssemblies");
			// Display the relative search path.
			Console.WriteLine("RelativeSearchPath: " + domain.RelativeSearchPath);
			// Because Load returns an Assembly object, the assemblies must be
			// loaded into the current domain as well. This will fail unless the
			// current domain also has these directories in its search path.
			AppDomain.CurrentDomain.AppendPrivatePath("Assemblies");
			AppDomain.CurrentDomain.AppendPrivatePath("MoreAssemblies");
			
			// Save shadow copies to C:\Cache
			domain.SetCachePath("C:\\Cache");
			// Shadow copy only the assemblies in the Assemblies directory.
			domain.SetShadowCopyPath(domain.BaseDirectory + "Assemblies");
			// Turn shadow copying on.
			domain.SetShadowCopyFiles();
			
			// This will be copied.
			// You must supply a valid fully qualified assembly name here. 
			domain.Load("Assembly1 text name, Version, Culture, PublicKeyToken");
			// This will not be copied.
			// You must supply a valid fully qualified assembly name here. 
			domain.Load("Assembly2 text name, Version, Culture, PublicKeyToken");
			
			// When the shadow copy path is cleared, the CLR will make shadow copies
			// of all private assemblies.
			domain.ClearShadowCopyPath();
			// MoreAssemblies\MyThirdAssembly.dll should be shadow copied this time.
			// You must supply a valid fully qualified assembly name here.
			domain.Load("Assembly3 text name, Version, Culture, PublicKeyToken");
			
			// Unload the domain.
			AppDomain.Unload(domain);
		}
	}
}

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 1.0, 1.1, 2.0
Obsolete (compiler warning) in 3.0

Community Additions

ADD
Show:
© 2014 Microsoft