Leer en inglés

Compartir a través de


AppDomain.SetShadowCopyPath(String) Método

Definición

Precaución

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

Precaución

AppDomain.SetShadowCopyPath has been deprecated and is not supported.

Precaución

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

Precaución

Use AppDomainSetup.ShadowCopyDirectories

Establece la ruta de acceso al directorio especificado como la ubicación de las instantáneas de los ensamblados.

C#
[System.Obsolete("AppDomain.SetShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public void SetShadowCopyPath (string? path);
C#
[System.Obsolete("AppDomain.SetShadowCopyPath has been deprecated and is not supported.")]
public void SetShadowCopyPath (string? path);
C#
[System.Obsolete("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);
C#
public void SetShadowCopyPath (string path);
C#
[System.Obsolete("AppDomain.SetShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
public void SetShadowCopyPath (string path);
C#
[System.Obsolete("AppDomain.SetShadowCopyPath has been deprecated. Please investigate the use of AppDomainSetup.ShadowCopyDirectories instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public void SetShadowCopyPath (string path);
C#
[System.Obsolete("Use AppDomainSetup.ShadowCopyDirectories")]
public void SetShadowCopyPath (string path);

Parámetros

path
String

Lista de nombres de directorio separados por puntos y comas.

Implementaciones

Atributos

Excepciones

La operación se intenta en un dominio de aplicación descargado.

Ejemplos

Este método ya está obsoleto y no debe usarse para el nuevo desarrollo.

C#
using System;
using System.Security.Policy;
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);
        }
    }
}

Comentarios

De forma predeterminada, una instantánea incluye todos los ensamblados encontrados a través del sondeo. El SetShadowCopyPath método restringe la instantánea a los ensamblados de los directorios especificados por path.

El SetShadowCopyPath método no especifica directorios adicionales en los que se buscarán ensamblados. Los ensamblados que se van a copiar en la sombra ya deben estar ubicados en la ruta de acceso de búsqueda, por ejemplo, en BaseDirectory. El SetShadowCopyPath método especifica qué rutas de búsqueda son aptas para copiarse en la sombra.

Este método establece la ShadowCopyDirectories propiedad del elemento interno AppDomainSetup asociado a esta instancia.

Para obtener más información sobre la instantánea, vea Instantáneas de ensamblados de copia de instantáneas.

Se aplica a

Producto Versiones (Obsoleto)
.NET (Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7)
.NET Framework 1.1 (2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8)
.NET Standard (2.0, 2.1)

Consulte también