AppDomain.ClearShadowCopyPath 方法

注意:此方法现在已过时。

将包含影像复制的程序集的目录列表重置为空字符串 ("")。

**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<ObsoleteAttribute("AppDomain.ClearShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202")> _
Public Sub ClearShadowCopyPath
用法
Dim instance As AppDomain

instance.ClearShadowCopyPath
[ObsoleteAttribute("AppDomain.ClearShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202")] 
public void ClearShadowCopyPath ()
[ObsoleteAttribute(L"AppDomain.ClearShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202")] 
public:
virtual void ClearShadowCopyPath () sealed
/** @attribute ObsoleteAttribute("AppDomain.ClearShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202") */ 
public final void ClearShadowCopyPath ()
ObsoleteAttribute("AppDomain.ClearShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202") 
public final function ClearShadowCopyPath ()

异常

异常类型 条件

AppDomainUnloadedException

试图对已卸载的应用程序域进行操作。

备注

影像副本路径是目录列表,在这些目录中存储影像复制的程序集。

有关更多信息,请参见 AppDomainSetup.ShadowCopyDirectories

示例

Imports System
Imports System.Security.Policy
 'for evidence object

Class ADShadowCopy
   
   'Entry point which delegates to C-style main Private Function
   ' Public Overloads Shared Sub Main()
    '  Main(System.Environment.GetCommandLineArgs())
   ' End Sub
   
   Public Overloads Shared Sub Main(args() As String)
      
      Dim setup As 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.
      Dim adevidence As Evidence = AppDomain.CurrentDomain.Evidence
      
      ' Create a new application domain.
      Dim domain As AppDomain = 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)
   End Sub 'Main
End Class 'ADShadowCopy
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);
        }
    }
}
using namespace System;
using namespace System::Security::Policy;

//for evidence Object*
int main()
{
   AppDomainSetup^ setup = gcnew 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: {0}", 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( String::Concat( 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 );
}

.NET Framework 安全性

平台

Windows 98、Windows 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

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:1.0、1.1
在 2.0 中过时(编译器警告)

请参见

参考

AppDomain 类
AppDomain 成员
System 命名空间
String.Empty