AppDomain.SetShadowCopyFiles Метод

Определение

Внимание!

AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. https://go.microsoft.com/fwlink/?linkid=14202

Внимание!

AppDomain.SetShadowCopyFiles has been deprecated and is not supported.

Внимание!

AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. http://go.microsoft.com/fwlink/?linkid=14202

Внимание!

Use AppDomainSetup.ShadowCopyFiles

Включает теневое копирование.

public:
 void SetShadowCopyFiles();
[System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public void SetShadowCopyFiles ();
[System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated and is not supported.")]
public void SetShadowCopyFiles ();
[System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public void SetShadowCopyFiles ();
public void SetShadowCopyFiles ();
[System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
public void SetShadowCopyFiles ();
[System.Obsolete("Use AppDomainSetup.ShadowCopyFiles")]
public void SetShadowCopyFiles ();
[<System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
member this.SetShadowCopyFiles : unit -> unit
[<System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated and is not supported.")>]
member this.SetShadowCopyFiles : unit -> unit
[<System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
member this.SetShadowCopyFiles : unit -> unit
member this.SetShadowCopyFiles : unit -> unit
[<System.Obsolete("AppDomain.SetShadowCopyFiles has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyFiles instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
[<System.Security.SecurityCritical>]
member this.SetShadowCopyFiles : unit -> unit
[<System.Obsolete("Use AppDomainSetup.ShadowCopyFiles")>]
member this.SetShadowCopyFiles : unit -> unit
Public Sub SetShadowCopyFiles ()
Атрибуты

Исключения

Предпринята попытка выполнения операции с выгруженным доменом приложения.

Примеры

Этот метод устарел и не должен использоваться для разработки новых версий.

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();
   Console::WriteLine( "ShadowCopyFiles turned on: {0}", domain->ShadowCopyFiles );
   
   // 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 System;
using System.Security.Policy;
namespace AppDomainSnippets
{
    class ADProperties
    {
        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();
            Console.WriteLine("ShadowCopyFiles turned on: " + domain.ShadowCopyFiles);

            // 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);
        }
    }
}
open System

let setup = 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.
let adevidence = AppDomain.CurrentDomain.Evidence

// Create a new application domain.
let 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.
printfn $"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()
printfn $"ShadowCopyFiles turned on: {domain.ShadowCopyFiles}"

// This will be copied.
// You must supply a valid fully qualified assembly name here.
domain.Load "Assembly1 text name, Version, Culture, PublicKeyToken" |> ignore
// This will not be copied.
// You must supply a valid fully qualified assembly name here.
domain.Load "Assembly2 text name, Version, Culture, PublicKeyToken" |> ignore

// 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" |> ignore

// Unload the domain.
AppDomain.Unload domain
Imports System.Security.Policy
 'for evidence object

Class ADProperties
    
    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()
        Console.WriteLine("ShadowCopyFiles turned on: " & domain.ShadowCopyFiles)
        
        ' 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
End Class

Комментарии

Дополнительные сведения о теневом копировании см. в разделе "Сборки теневого копирования".

Применяется к

См. также раздел