AppDomain.RelativeSearchPath プロパティ
アセンブリ リゾルバがプライベート アセンブリを探す場所を示す、ベース ディレクトリを基準とした相対パスを取得します。
Public Overridable ReadOnly Property RelativeSearchPath As String _ Implements _AppDomain.RelativeSearchPath
[C#]
public virtual string RelativeSearchPath {get;}
[C++]
public: __property virtual String* get_RelativeSearchPath();
[JScript]
public function get RelativeSearchPath() : String;
プロパティ値
アセンブリ リゾルバがプライベート アセンブリを調べる場所を示す、ベース ディレクトリを基準とした相対パス。
実装
例外
例外の種類 | 条件 |
---|---|
AppDomainUnloadedException | 操作が、アンロードされたアプリケーション ドメインで試行されています。 |
解説
プライベート アセンブリは、アプリケーションと同じディレクトリ構造に配置されます。
使用例
Imports System
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 'Main
End Class 'ADProperties
[C#]
using System;
using System.Security.Policy; //for evidence object
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);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Security::Policy; //for evidence object
int main()
{
AppDomainSetup* setup = new AppDomainSetup();
// Shadow copying will not work unless the application has a name.
setup->ApplicationName = S"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(S"MyDomain", adevidence, setup);
// MyAssembly.dll is located in the Assemblies subdirectory.
domain->AppendPrivatePath(S"Assemblies");
// MyOtherAssembly.dll and MyThirdAssembly.dll are located in the
// MoreAssemblies subdirectory.
domain->AppendPrivatePath(S"MoreAssemblies");
// Display the relative search path.
Console::WriteLine(S"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(S"Assemblies");
AppDomain::CurrentDomain->AppendPrivatePath(S"MoreAssemblies");
// Save shadow copies to C:\Cache
domain->SetCachePath(S"C:\\Cache");
// Shadow copy only the assemblies in the Assemblies directory.
domain->SetShadowCopyPath(String::Concat( domain->BaseDirectory, S"Assemblies" ));
// Turn shadow copying on.
domain->SetShadowCopyFiles();
Console::WriteLine(S"ShadowCopyFiles turned on: {0}", __box(domain->ShadowCopyFiles));
// This will be copied.
// You must supply a valid fully qualified assembly name here.
domain->Load(S"Assembly1 text name, Version, Culture, PublicKeyToken");
// This will not be copied.
// You must supply a valid fully qualified assembly name here.
domain->Load(S"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(S"Assembly3 text name, Version, Culture, PublicKeyToken");
// Unload the domain.
AppDomain::Unload(domain);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ