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

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

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

Re[2]: Oracle.Data.Access.dllのアセンブリーロ


(過去ログ 139 を表示中)

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

■81769 / inTopicNo.1)  Oracle.Data.Access.dllのアセンブリーロ
  
□投稿者/ yapii (1回)-(2016/11/11(Fri) 12:04:21)

分類:[.NET 全般] 

Oracle.Data.Access.dllのアセンブリーロード順について
プロファイル、web.configなどの設定により、どのように動作するのか調査しています。

ランタイムがアセンブリを検索する方法
https://msdn.microsoft.com/ja-jp/library/yx7xezcf(v=vs.110).aspx
などを読んだ上で、確認したいことが何点かあります。

ご教授お願いいたします。


開発用マシンAに、Oracle 11g だけがインストールされているとします。
このマシンで システム1を開発します。

参照設定でOracle.Data.Access.dllを
「参照の追加」ダイアログの「.NET」タブではなく「参照タブ」からパスを指定して追加します。

【質問1】
このとき
プロファイルはないのかもしれませんが、あったとしてもリダイレクトは11gになるはずなので、
GACフォルダ内のOracle.Data.Access.dllを参照するであっていますでしょうか?
(※参照先はbinにある、参照設定したdllではない)
引用返信 編集キー/
■81771 / inTopicNo.2)  Re[1]: Oracle.Data.Access.dllのアセンブリーロ
□投稿者/ Hongliang (470回)-(2016/11/11(Fri) 12:32:59)
GACに、開発時に参照したものと一致するバージョンのアセンブリが登録されていれば、そのアセンブリが優先的にロードされますね。
ちなみに、実行時にロードされているアセンブリの物理パスを取得するには、typeof(アセンブリに格納されている型).AssemblyなどでAssemblyオブジェクトを取得し、CodeBaseプロパティやLocationプロパティを参照すればいいです。
引用返信 編集キー/
■81772 / inTopicNo.3)  Re[1]: Oracle.Data.Access.dllのアセンブリーロ
□投稿者/ WebSurfer (1064回)-(2016/11/11(Fri) 12:46:30)
No81769 (yapii さん) に返信

web.config という言葉が出てくるので ASP.NET Web アプリの話であろうと想像して・・・
(何を作っているかを最初に書いておいていただけると有難い)

ASP.NET が、GAC にある .dll とアプリの bin フォルダにある .dll のどちらを優先的に使
うかという話であれば、以下の記事が参考になりませんか?

ASP.net assembly loading from GAC or Bin
https://blogs.msdn.microsoft.com/pranav_rastogi/2010/10/17/asp-net-assembly-loading-from-gac-or-bin/
引用返信 編集キー/
■81773 / inTopicNo.4)  Re[2]: Oracle.Data.Access.dllのアセンブリーロ
□投稿者/ yapii (3回)-(2016/11/11(Fri) 12:54:29)
返答ありがとうございます。
特にWindowsForm、WebFormに限った話ではないと思っています。
引き続きおつきあいいただけますでしょうか。
よろしくお願いいたします。

開発用マシンAに、Oracle 11g だけがインストールされているとします。
このマシンで システム1を開発します。

参照設定でOracle.Data.Access.dllを
「参照の追加」ダイアログの「.NET」タブではなく「参照タブ」からパスを指定して追加します。

----------------------------------------------------------------------
【質問1】
このとき
プロファイルはないのかもしれませんが、あったとしてもリダイレクトは11gになるはずなので、
GACフォルダ内のOracle.Data.Access.dllを参照するであっていますでしょうか?
(※参照先はbinにある、参照設定したdllではない)
【回答】
GACのOracle.Data.Access.dllが優先される。
----------------------------------------------------------------------

開発用マシンBに、Oracle 12gだけがインストールされているとします。
このマシンで 11gで開発したシステム1をビルドすると

【質問2】
プロファイルを見にいき、12gにリダイレクトされる。
GACにある12gのdllを参照する。
しかし参照設定で11gのdllが追加されているので、バージョンが合わないとエラーになるのでしょうか?
特定バージョンfalseであれば12gのdllで実行されるのでしょうか?

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -