現在、Visual Studio 2008で開発したプロジェクトをVisual Studio 2015に移行しようとしているのですが、Webを発行する箇所で躓いております。
試験で開発環境で動作させる際は問題なく動いたのですが、本番環境で動作させるためにWebサイトを発行しようとすると、「ファイルまたはアセンブリ名 'Oracle.DataAccess.dll'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。」が発生しました。
発行する際の設定としては、
1.「プロパティページ」からx64のOracle.DataAccess.dllを参照追加する。
2.「接続」は「ファイルシステム」にし、「発行中にリコンパイルする」にチェックを入れる。
3.[Web サイトおよびプロジェクト用 IIS Express の64ビット バージョンを使用] をONにする。
にしております。
ここで、
「発行中にリコンパイルする」のチェックを外す、または、
Oracle.DataAccess.dllの参照を削除するか、32ビットを使用すると発行できます。
しかし、「発行中にリコンパイルする」のチェックを外すと、App_Code.dllが生成されません。
また、その他はDBにアクセスできません。
ローカルで動かす際は64ビットのOracle.DataAccess.dllを使用しても問題ありませんでした。
発行の際はIIS Expressでは32bitでしか発行できないとかあるのでしょうか。
*追加情報
AnyCPUでコンパイルした.dllファイルを参照追加すると、定義したクラスが使えるのですが、x64でコンパイルした.dllファイルを参照追加するとクラスが定義されていません。とでます。
ASP.net Webサイトには参照追加で64bitは使用できないのでしょうか。
環境・現象を以下に記載します。
■開発環境
【旧開発環境】
・Windows7
・32bit
・Visual Studio 2008
・Visual Basic
・WebサイトはASP.net Webサイト
【新開発環境】
・Windows10
・64bit
・Visual Studio 2015
・Visual Basic
・WebサイトはASP.net Webサイト
■ソリューションの構成
[{ソリューション}]
|
 ̄『{Webサイト}』
|
 ̄『App_Codeフォルダ』
| |
|  ̄[OracleAcsecc.vb]
|
 ̄『Service.asmx』
■処理について
App_CodeフォルダのOracleAcsecc.vb内でOracleにアクセスする処理を書き、Service.asmxの中で読んでいます。
■その他
参照追加したOracle.DataAccess.dllは「Bin」フォルダに配置されますが、「プロパティページ」の参照タブを選択した際、表示されていません。
以上になります。
