The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
AppDomain::SetShadowCopyFiles Method ()
.NET Framework (current version)
Turns on shadow copying.
Assembly: mscorlib (in mscorlib.dll)
| Exception | Condition |
|---|---|
| AppDomainUnloadedException | The operation is attempted on an unloaded application domain. |
For more information on shadow copying, see Shadow Copying Assemblies.
This method is now obsolete, and should not be used for new development.
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 ); }
SecurityCriticalAttribute
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
.NET Framework
Available since 1.1
Available since 1.1
Show: