- - PR -
アセンブリ配置での最適な方法は?!
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-18 13:13
現在、親(共通)クラスのDLLと子クラスのDLLを別フォルダへの配置を想定した
アプリを作成しています。子クラスを呼び出すと、親クラスのDLLが見つからない というエラーが出ますので、調べてみるといろいろ考慮する点が多く困っております。 まず、DLLにはプライベートアセンブリとGACへの配置という選択肢がありますが モジュールの配置の簡易性を重視してプライベート配置で考えております。 プライベートアセンブリを選択した場合、DLLを探すのが既定では自フォルダと 探しているDLL名がついたサブフォルダとなっていますが、それでは要件を満たせません。(親クラスのフォルダは子クラスのサブフォルダにはしたくないので) このような場合、残った解決方法としてはモジュールに厳密名をつけ、コードベースで そのDLLを参照するように設定するしかないのでしょうか。 厳密名への変換方法もわかっておらず調査が必要なので、できればモジュールに変更を加えず(厳密名なしのまま)解決できれば助かります。 外部フォルダにある厳密名なしのDLLを探す(解決する)方法をご存知の方が いらしたら教えていただけないでしょうか。 よろしくお願いします。 | ||||||||
|
投稿日時: 2003-09-18 15:31
すべて同じディレクトリに配置する。
「DLL Hell」をさけるには、結局「共通」な配置をさせられないから。 と、私は理解しているのですが。。。 | ||||||||
|
投稿日時: 2003-09-18 17:09
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconspecifyingassemblyslocation.asp
によると厳密名がついていないとどっちにしろできないようです。 コードに含めていいのなら AppDomain.AssemblyResolve イベントで Assembly.LoadFrom() メソッドあたりで読み込んで返してやるっていう手もなきにもしあらずですが…。 個人的には厳密名をつけることを薦めます。そんなに手間が増えるわけでもないですし。 http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_02/idnfw11_02_01.html |
1