System.AppDomain.SetShadowCopyPath 方法

方法描述

确定指定目录路径为要进行影像复制的程序集的位置。

语法定义(C# System.AppDomain.SetShadowCopyPath 方法 的用法)

[ObsoleteAttribute("AppDomain.SetShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public void SetShadowCopyPath(
	string path
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
path System-String 目录名列表,每一个名称用分号隔开。
返回值 void

提示和注释

默认情况下,影像副本包含探测期间发现的所有程序集。 SetShadowCopyPath 方法将影像副本限制在 path 指定的目录中的程序集。

SetShadowCopyPath 方法不指定从中搜索程序集的其他目录。 要影像复制的程序集必须已位于搜索路径中,例如 BaseDirectory 下。 SetShadowCopyPath 方法指定可影像复制的搜索路径。

此方法设置与此实例关联的内部 AppDomainSetup 的 ShadowCopyDirectories 属性。

有关影像复制的更多信息,请参见影像复制程序集。

System.AppDomain.SetShadowCopyPath 方法例子

此方法现已过时,不应当用于新的开发工作。

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);
		}
	}
}

异常

异常 异常描述
AppDomainUnloadedException 尝试对已卸载的应用程序域进行操作。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:1.1、1.0 在 4 中过时(编译器警告) 在 3.5 中过时(编译器警告) 在 3.5 SP1 中过时(编译器警告) 在 3.0 中过时(编译器警告) 在 3.0 SP1 中过时(编译器警告) 在 3.0 SP2 中过时(编译器警告) 在 2.0 中过时(编译器警告) 在 2.0 SP1 中过时(编译器警告) 在 2.0 SP2 中过时(编译器警告) .NET Framework Client Profile 在 4 中过时(编译器警告) 在 3.5 SP1 中过时(编译器警告)

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。