AppDomain.SetCachePath 메서드
참고: 이 메서드는 이제 사용되지 않습니다.
지정한 디렉터리 경로를 어셈블리가 섀도 복사되는 위치로 설정합니다.
네임스페이스: System
어셈블리: mscorlib(mscorlib.dll)
구문
‘선언
<ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. https://go.microsoft.com/fwlink/?linkid=14202")> _
Public Sub SetCachePath ( _
path As String _
)
‘사용 방법
Dim instance As AppDomain
Dim path As String
instance.SetCachePath(path)
[ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public void SetCachePath (
string path
)
[ObsoleteAttribute(L"AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public:
virtual void SetCachePath (
String^ path
) sealed
/** @attribute ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. https://go.microsoft.com/fwlink/?linkid=14202") */
public final void SetCachePath (
String path
)
ObsoleteAttribute("AppDomain.SetCachePath has been deprecated. Please investigate the use of AppDomainSetup.CachePath instead. https://go.microsoft.com/fwlink/?linkid=14202")
public final function SetCachePath (
path : String
)
매개 변수
- path
섀도 복사본 위치에 대한 정규화된 경로입니다.
예외
예외 형식 | 조건 |
---|---|
언로드된 응용 프로그램 도메인에서 작업을 시도한 경우 |
예제
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 보안
- SecurityPermission 응용 프로그램 도메인을 만들고 조작하는 데 필요한 권한입니다. 연관된 열거형: SecurityPermissionFlag.ControlAppDomain
플랫폼
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에서 사용되지 않음(컴파일러 경고)