C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DLLがDLLを参照する場合について


(過去ログ 59 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■33960 / inTopicNo.1)  DLLがDLLを参照する場合について
  
□投稿者/ ぱっちょ (1回)-(2009/03/14(Sat) 00:47:45)

分類:[.NET 全般] 

http://dobon.net/vb/dotnet/programing/plugin.html
ここを参考に以下のようなものを作りました。

Plugin.dll --- IPluginインターフェースを公開
Foo.dll --- Fooクラスを公開
Hoge.dll --- IPluginを実装したクラスHogeを公開。Foo.dllを参照に追加。
App.exe --- 実行時にサブフォルダ"plugins"に配置された"Hoge.dll"をAssembly.LoadFromでロードする

フォルダ構成
App.exe
Plugin.dll
plugins
 |-Hoge.dll
 |-Foo.dll

Hoge.dllの動作にはFoo.dllが必要なので同じフォルダに配置しましたが
Foo.dllが見つからない旨の例外が起きます。
試行錯誤してみたところ、App.exeと同じフォルダにFoo.dllを置くと正常に動作します。
しかしApp.exeはFoo.dllを感知しないので、同じフォルダには置きたくないです。
どうにかしてFoo.dllを見つけさせる方法はないでしょうか?

引用返信 編集キー/
■33962 / inTopicNo.2)  Re[1]: DLLがDLLを参照する場合について
□投稿者/ Hongliang (345回)-(2009/03/14(Sat) 08:48:42)
アプリケーション構成ファイルの probing 要素に設定してやればいいでしょう、
引用返信 編集キー/
■33968 / inTopicNo.3)  Re[2]: DLLがDLLを参照する場合について
□投稿者/ ぱっちょ (2回)-(2009/03/14(Sat) 14:59:50)
No33962 (Hongliang さん) に返信
> アプリケーション構成ファイルの probing 要素に設定してやればいいでしょう、

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="plugins" />
    </assemblyBinding>
  </runtime>
</configuration>

とすることでFoo.dllを見つけてくれるようになりました。
dllが参照するアセンブリの検索は、exe側の設定に左右されるんですね。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -