トップ回答者
ASP.NET MVC2 でOracle.DataAccess.dll を参照に追加したときの参照の記述先?

質問
-
初めまして。
ASP.NET MVC2から Oracle.DataAccess.dllを参照に追加した場合、
その参照についてどこに記述されているか、またはdllのバージョンを手動で変更するにはどうすればよいか
教えて頂けないでしょうか。
具体的には、開発環境のOracle.DataAccess.dllのバージョンが Version=2.102.4.0 に対して、
ウェブサイトの発行先のOracle.DataAccess.dllのバージョンは Version=2.102.2.20 です。
webformで開発していた時は、参照に追加するとweb.configに記述されるので、
そちらを加工していたのですが、MVC2では、そういった記述を見つけることができませんでした。
【開発環境】
Visual Basic 2008
.NET Framework 3.5
MVC2
よろしくお願いいたします。
回答
-
.vbproj に書いてあるアセンブリは開発 PC の環境を参照しないといけませんので、ここは書き換えてはいけないと思います。
Oracle.DataAccess.dll のローカル コピーを False にしておいて、Web.config の assemblies に WebForm と同じ内容で追加してあげれば、発行先では別のアセンブリを参照させることができるはずと思いますが...。
そんなことより、開発環境と発行先のアセンブリのバーションを合わせるのが普通だと思うのですが、それができない理由があるのでしょうか。- 回答としてマーク はるこ 2011年8月12日 6:26
-
> また、dllをbinフォルダに置くのは試していませんが(すみませ
> ん)、そうするとOracleが動くかどうか…(動くのでしょうか)。マネージコードアセンブリですよね?
Oracle は試したことはないですが、MySQL の Connector/Net その
他今まで試した限りでは bin フォルダにアセンブリを置いて動かな
かったことはないです。簡単に試せますし、もとに戻すのも簡単です。また、試したからと
言ってどこかが壊れると言うわけでもありませんので、解決策の候
補の一つとして一度試してみることをお勧めします。参考になると思われるページへのリンクを張っておきます。
ASP.NET Web プロジェクト内の共有コード フォルダー
http://msdn.microsoft.com/ja-jp/library/t990ks23%28v=VS.100%29.aspx- 回答としてマーク はるこ 2011年8月18日 3:02
すべての返信
-
まずは、"Oracle.DataAccess" というキーワードでプロジェクト内を検索してみるといいと思います。
具体的には、開発環境のOracle.DataAccess.dllのバージョンが Version=2.102.4.0 に対して、
ウェブサイトの発行先のOracle.DataAccess.dllのバージョンは Version=2.102.2.20 です。
webformで開発していた時は、参照に追加するとweb.configに記述されるので、
そちらを加工していたのですが、MVC2では、そういった記述を見つけることができませんでした。
ASP.NET MVC 2 も WebForm と同じく ASP.NET ですので、このあたりの仕組みは変わらないはずです。
ただし、ASP.NET MVC は Web.config が 2 つありますので、ちょっと混乱するかもしれないですけれども。
参考:
ASP.NET MVC: Difference between web.config under Views and in Root Folder | Free Web Developer Site
http://www.freewebdevelopersite.com/2011/06/11/asp-net-mvc-difference-between-web-config-under-views-and-in-root-folder/ -
正確なエラーを書いておきます。
ファイルまたはアセンブリ 'Oracle.DataAccess, Version=2.102.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
.vbprojの変更部分は以下です。
<!-- はるこPC -->
<!--<Reference Include="Oracle.DataAccess, Version=2.102.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86">-->
<!-- WEBサーバ -->
<Reference Include="Oracle.DataAccess, Version=10.1.0.200, Culture=neutral, PublicKeyToken=89B483F429C47342, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<!-- はるこPC -->
<!--<HintPath>..\..\..\..\..\..\..\Oracle\product\10.2.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll</HintPath>-->
<!-- WEBサーバ -->
<HintPath>..\..\..\..\..\..\..\Oracle\product\10.1.0\Client_1\BIN\Oracle.DataAccess.dll</HintPath>
</Reference>よろしくお願いいたします。
-
.vbproj に書いてあるアセンブリは開発 PC の環境を参照しないといけませんので、ここは書き換えてはいけないと思います。
Oracle.DataAccess.dll のローカル コピーを False にしておいて、Web.config の assemblies に WebForm と同じ内容で追加してあげれば、発行先では別のアセンブリを参照させることができるはずと思いますが...。
そんなことより、開発環境と発行先のアセンブリのバーションを合わせるのが普通だと思うのですが、それができない理由があるのでしょうか。- 回答としてマーク はるこ 2011年8月12日 6:26
-
-
> また、dllをbinフォルダに置くのは試していませんが(すみませ
> ん)、そうするとOracleが動くかどうか…(動くのでしょうか)。マネージコードアセンブリですよね?
Oracle は試したことはないですが、MySQL の Connector/Net その
他今まで試した限りでは bin フォルダにアセンブリを置いて動かな
かったことはないです。簡単に試せますし、もとに戻すのも簡単です。また、試したからと
言ってどこかが壊れると言うわけでもありませんので、解決策の候
補の一つとして一度試してみることをお勧めします。参考になると思われるページへのリンクを張っておきます。
ASP.NET Web プロジェクト内の共有コード フォルダー
http://msdn.microsoft.com/ja-jp/library/t990ks23%28v=VS.100%29.aspx- 回答としてマーク はるこ 2011年8月18日 3:02