6

AppDomain.AppendPrivatePath()は廃止されたため、まったく新しいAppDomainを起動せずに、プロジェクト内の現在のAppDomainにPrivateBinPathを指定し、後でアクセスできるようにする方法を見つけようとしています。

AppDomainSetupオブジェクトにPrivateBinPathを設定できることを知っています(新しいAppDomainを作成したい場合は問題ありません)。また、次のようにapp.configに追加できることも知っています。

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath=".\AlternateLookupPath" />
    </assemblyBinding>
  </runtime>

ただし、このエントリをapp.configに追加すると、AppDomain.CurrentDomain.SetupInformation.PrivateBinPathプロパティがnullになります。

4

2 に答える 2

6

使用する

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="AlternateLookupPath" />
    </assemblyBinding>
  </runtime>

http://msdn.microsoft.com/en-us/library/823z9h8w.aspxによると、これprivatePathはすでに「アプリケーションのベースディレクトリのサブディレクトリ」として解釈されています...したがって、使用する.\とどういうわけか混乱しているのではないかと思います...

于 2011-09-17T21:59:58.347 に答える
4

ドキュメントから:

PrivateBinPathに指定されたディレクトリがApplicationBaseの下にない場合、それらは無視されます。

したがって、追加するパスがApplicationBaseの下にあることを確認する必要があります。

ただし、これはapp.configでのみ機能します。実行時にこれを行う必要がある場合は、ドキュメントで説明されているようにAssemblyResolveイベントを使用します。

http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

于 2009-08-28T16:55:17.763 に答える