C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: DLLのオートメーションエラーに関して
(過去ログ 143 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 6 記事 (1 - 6 表示)] <<
0
>>
■83735
/ inTopicNo.1)
DLLのオートメーションエラーに関して
▼
■
□投稿者/ mako
(9回)-(2017/04/05(Wed) 08:56:18)
分類:[.NET 全般]
お世話になります。
数日前に今回の件に関する質問をさせていただいたのですが、
再度、質問をさせてください。
まずやりたいことですが、.NetFrameWork4上で作成した
DBアクセスを行うDLLを作成しています。
このDLLを別の環境(環境2)に持っていき
VB6のプログラムから参照させるようにしているのですが、
以下のエラーが表示されます。
「オートメーションエラーです。指定されたファイルが見つかりません。(-2147024894)」
以前にこの掲示板にて教えていただいた方の情報を参考に
色々と試行錯誤を繰り返したのですが、手詰まりとなってしまいました。
おそらく.NetFrameworkとODP.Netのバージョンの問題かと思われるのですが、
現在の所解決に至っていません。
以下に現在の状況を記載しましたので、ご指摘があれば教えていただいても
よろしいでしょうか?
●環境1
OS:Windows Server2012 R2(仮想環境)64Bit
ビルド環境:Microsoft Visual Basic 2015
ビルド設定:
・対象フレームワーク:.Net Framework4
・対象のCPU:x86
・COM相互運用機能の登録にチェック
・アセンブリに署名するにチェック、キーファイルの設定あり
Oracle.DataAccess.dllのバージョン:2.111.7.0
●環境2
OS:Windows XP SP3(仮想環境)32Bit
ビルド環境:Microsoft Visual Basic 6
ビルド設定:環境1で作成されたTLBファイルを参照
Oracleバージョン:OracleClient 11g
●事前に行ったこと
1.環境1でテストスタブを作成し、接続ができるかを
確認した所、問題なく接続ができることを確認
●DLL配置後に行ったこと
1.EXEファイルが実行されるフォルダにDLLを配置して起動
またWindows\system32にDLLを配置して起動
2.RegASMコマンドにてレジストリ登録して起動
3.GacUtilコマンドにてレジストリ登録して起動
●その他の事象
Oracle.DataAccess.dllを参照していないDLLもあるのでビルドして環境2
で動かしたのですが、それは問題なく起動しました。
引用返信
編集キー/
編集
■83736
/ inTopicNo.2)
Re[1]: DLLのオートメーションエラーに関して
▲
▼
■
□投稿者/ mako
(10回)-(2017/04/05(Wed) 08:59:29)
補足です
「●DLL配置後に行ったこと」の1〜3ですが、考えられる組み合わせで検証しています。
例1:DLLをEXE起動フォルダに配置(RegAsm,GacUtilコマンドは使っていない。)
例2:DLLをsystem32フォルダに配置してGacUtilコマンドを使用
引用返信
編集キー/
編集
■83737
/ inTopicNo.3)
Re[1]: DLLのオートメーションエラーに関して
▲
▼
■
□投稿者/ 魔界の仮面弁士
(1242回)-(2017/04/05(Wed) 09:19:20)
■
No83735
(mako さん) に返信
> ●環境2
> OS:Windows XP SP3(仮想環境)32Bit
> ビルド環境:Microsoft Visual Basic 6
> ビルド設定:環境1で作成されたTLBファイルを参照
> Oracleバージョン:OracleClient 11g
実行環境側に、ODP.NET のインストールは行っていますか?
ODP.NET Managed Driver すなわち Oracle.ManagedDataAccess 名前空間のライブラリは
実行環境にコピーするだけでも動作可能ですが(ただし 12c + .NET 4 以降が対象)、
ODP.NET Unmanaged Driver すなわち Oracle.DataAccess 名前空間のライブラリは、
OCI によって適切に GAC へインストールされねばなりません。
http://stknohg.hatenablog.jp/entry/2014/11/02/173039
また、実行環境において、10.2.0.2.20 未満の ODP.NET が導入済みの場合、
古い方のバージョンは削除しておかないと、正しく動作しない可能性があります。
http://d.hatena.ne.jp/atsukanrock/20090519/1242721158
引用返信
編集キー/
編集
■83738
/ inTopicNo.4)
Re[2]: DLLのオートメーションエラーに関して
▲
▼
■
□投稿者/ mako
(11回)-(2017/04/05(Wed) 10:11:52)
魔界の仮面弁士様
早速のご回答ありがとうございます。
>実行環境側に、ODP.NET のインストールは行っていますか?
インストールは行っています。
GAC(C:\WINDOWS\assembly)に以下のものがインストールされていますが、
(ご指摘のあった10.2.0.2.20 未満の ODP.NETはインストールされていません。)
エラーが出てしまいます。
Oracle.DataAccess 2.111.7.20
Oracle.DataAccess.resources 2.111.7.20
Oracle.Web 2.111.7.20
Oracle.Web.resources 2.111.7.20
引用返信
編集キー/
編集
■83740
/ inTopicNo.5)
Re[2]: DLLのオートメーションエラーに関して
▲
▼
■
□投稿者/ mako
(13回)-(2017/04/05(Wed) 13:28:59)
魔界の仮面弁士様
取り急ぎ報告します。
これが原因なのかは不明なのですが、C:\WINDOWS\Microsoft.NET\assembly\GAC_32に
今回が対象のOracle.DataAccess.dllでは無いものが登録されていたので、
これを変えてみた所、プログラム動くようになりました。
この作業は別環境でも行うので、教えていただいた下記の情報を
参考にさせてください。
この度はありがとうございました。
>ODP.NET Managed Driver すなわち Oracle.ManagedDataAccess 名前空間のライブラリは
>実行環境にコピーするだけでも動作可能ですが(ただし 12c + .NET 4 以降が対象)、
>ODP.NET Unmanaged Driver すなわち Oracle.DataAccess 名前空間のライブラリは、
>OCI によって適切に GAC へインストールされねばなりません。
>
http://stknohg.hatenablog.jp/entry/2014/11/02/173039
>また、実行環境において、10.2.0.2.20 未満の ODP.NET が導入済みの場合、
>古い方のバージョンは削除しておかないと、正しく動作しない可能性があります。
引用返信
編集キー/
編集
■83741
/ inTopicNo.6)
Re[3]: DLLのオートメーションエラーに関して
▲
▼
■
□投稿者/ mako
(14回)-(2017/04/05(Wed) 14:47:25)
■
No83740
(mako さん) に返信
> 魔界の仮面弁士様
>
> 取り急ぎ報告します。
>
> これが原因なのかは不明なのですが、C:\WINDOWS\Microsoft.NET\assembly\GAC_32に
> 今回が対象のOracle.DataAccess.dllでは無いものが登録されていたので、
> これを変えてみた所、プログラム動くようになりました。
> この作業は別環境でも行うので、教えていただいた下記の情報を
> 参考にさせてください。
> この度はありがとうございました。
>
> >ODP.NET Managed Driver すなわち Oracle.ManagedDataAccess 名前空間のライブラリは
> >実行環境にコピーするだけでも動作可能ですが(ただし 12c + .NET 4 以降が対象)、
> >ODP.NET Unmanaged Driver すなわち Oracle.DataAccess 名前空間のライブラリは、
> >OCI によって適切に GAC へインストールされねばなりません。
> >
http://stknohg.hatenablog.jp/entry/2014/11/02/173039
>
> >また、実行環境において、10.2.0.2.20 未満の ODP.NET が導入済みの場合、
> >古い方のバージョンは削除しておかないと、正しく動作しない可能性があります。
>
>
>
>
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-