- PR -

実行時にdllを参照するパスの設定

投稿者投稿内容
dragonball
会議室デビュー日: 2004/06/09
投稿数: 19
投稿日時: 2004-07-24 15:30
お世話になっております。

実行時にdll参照について質問です。

アセンブリやCOMコンポーネントであれば、参照設定に追加することで
実行時にdllを使うことができるのですが、
それ以外のdllを実行時に読み取れるように
プロジェクトを設定することはできるのでしょうか?

これらのdllもbin以下に配置すれば正常に実行されました。
ただ、ビルド出力されるbin以下のファイルと
ライブラリとして使うdllを分けたいので別のフォルダに置き
実行時にそこから読み出せるようにしたいのです。

できれば参照設定に追加したアセンブリやCOMコンポーネントも
ローカルコピーをFalseにして別のフォルダに置いておきたいと思っています。
プロジェクトのプロパティに該当する設定項目はなかったのですが
このようなことはできないのでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-24 21:48
 DLL Hellをさけるためにしない方がよい、ということかな。過去にスレッドがあります。探してみてください。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-07-26 10:01
プロジェクトの参照設定はそのアセンブリの型を見るだけで、実際動かしたときにどのアセンブリが読み込まれるかは指定できません。
マニフェストの中には、「自分が参照しているこのアセンブリはどこのディレクトリにある」という情報は含まれていないようですし。

http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_01.html
第三回をひと通り見てみてください。
プロービングではなくて、アセンブリのコードベースで指定してはどうでしょう。

厳密名を付けなければなりませんが。
dragonball
会議室デビュー日: 2004/06/09
投稿数: 19
投稿日時: 2004-07-26 10:18
Jittaさん、一郎さんレスありがとうございます。
返事が遅れてしまい申し訳ありません。

指摘の過去スレとリンクを参照します。

ありがとうございました。
dragonball
会議室デビュー日: 2004/06/09
投稿数: 19
投稿日時: 2004-07-26 17:13
お世話になっております。

アセンブリのロードの仕組み等読んでみました。
説明不足で失礼しました。

私はASP.NETを使ったWebアプリケーションの開発をしており、
行いたいのは

1、アセンブリやCOMコンポーネント以外のdllをbin以外のディレクトリに配置
2、アセンブリやCOMコンポーネントをbin以外のディレクトリに配置

です。2ができそうなのは分かったのですが、1は可能でしょうか?
アセンブリやCOMコンポーネント以外のdllとは.NET以外で作られたライブラリで
.NETプログラム上でロードしています。
それらのdllはもちろんパスに含めるか、bin以下に配置すれば動くのですが
bin以下のビルドファイルと区別したいので任意のディレクトリに配置したいと思っています。
その際に実行時のロード対象として指定したいのですが、
そのような方法が見当たりませんでした。

実行時のdllの検索パスの指定はできないのでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-26 17:26
 私のアドバイスは無視されちゃったのかなぁ
「dll 読」「すべてを含む」「Insider.NET会議室から」検索
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9189&forum=7


[ メッセージ編集済み 編集者: Jitta 編集日時 2004-07-26 17:29 ]
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-07-26 18:23
るぱんです。

regsrv32 フルパス.dll
ですかね?

まぁ、インスタンス化出来るDLLって条件が付きますが・・・。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-07-26 19:10
ああああ、間違ってました。
.NETのアセンブリじゃないんですね。すいませんでした。

スキルアップ/キャリアアップ(JOB@IT)