2012-03-02 17 views
11

C#コンソールアプリケーションでは、<probing privatePath=""/>を使用して、アプリケーションのサブディレクトリにないdllを参照しようとしています。私は使用しています:プライベートパスのプロービングで絶対パスを使用

プライベートパスは私のアプリケーションのサブディレクトリを探しているので、これは動作しません。このように絶対パスを使用する方法はありますか?そうでない場合は、アプリケーションの外にあるDLLを指す最善の方法は何ですか?私はパスで<codebase>を使ってみましたが、まだSystem.IO.FileNotFoundの例外があります。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity 
     name="MyLibrary" publicKeyToken="29989D7A39ACF230" /> 
     <codeBase 
     version="2.0.0.0" 
     href="http://file:///D:/Library/References/NLog.dll"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

ただし、まだSystem.IO.FileNotFound例外があります。

ありがとうございます! MSDNに応じ

答えて

13

は:

あなただけマシンの構成でも、アセンブリバージョンをリダイレクト発行者ポリシーファイルを要素を使用することができます。 ... strong-namedではないアセンブリのコードベースヒントを提供する場合、ヒントはアプリケーションベースディレクトリまたはアプリケーションベースディレクトリのサブディレクトリ を指している必要があります。

おそらくapp.configで申し込みを試みましたか? privatePathで指定

ディレクトリは アプリケーションベースディレクトリのサブディレクトリでなければなりません。

+0

私は2番目の部分を得ました。しかし、最初の部分はどういう意味ですか? – Paul

+0

私は答えを編集しました –