インストーラを作る途中(ビルド)でエラーがでます、理由を見ても分かりませんので教えてください。

解決


プログラマ1年生  2004-06-24 18:20:16  No: 114209

VB.NETを使って作成したシステムをEXEにしようとしたのですが、最後のビルドの時点でこのようなエラーが出てしまいます。
「msadox.dll' は、リソース ファイル 'C:\Program Files\Common Files\System\ado\msadox.dll' が Windows システム ファイルの保護下にあるため、除外されるべきです。」
セットアップファイルはできていたのでインストールしてみてもデータベース接続のところでエラー「Connection Stringを初期化できませんでした」が出てしまします。上のエラーと関係あるのでしょうか?  INIファイルを使っていますがそれもなにか関係があるのでしょうか??


特攻隊長まるるう  2004-06-24 19:44:16  No: 114210

>最後のビルドの時点でこのようなエラーが出てしまいます。
エラーは[タスク一覧]のウィンドウに出ていると思いますが、
エラーメッセージを選択状態にして[F1]キーを押すとヘルプに
飛んでもう少し詳しい説明が見れると思います。

このエラー(警告)はサービスパックやOSのバージョンなどに
よって微妙に違うシステムファイルを、インストーラが
上書きしてしまい、インストール先のシステムがサポート
してないファイルになってしまうことを注意するものです。
除外せずにインストールしてしまったようですので、もう
インストール先の端末ではファイルが上書きされてしまって
いると考えられます。

msadox.dll は ADO のオブジェクトライブラリでしょうから
最悪の場合、インストール先の msadox.dll を利用していた
アプリケーションが全て使えなくなっています。
>データベース接続のところでエラー「Connection Stringを初期化できませんでした」が出てしまします。
接続に ADO を使っているでしょうから可能性は高いです。
…もちろん、プログラミングが悪い可能性はありますが、
開発環境でのデバックは通ったんでしょ?


プログラマ1年生  2004-06-24 20:14:42  No: 114211

返信有難うございます。
msadox.dll についてはよく分かりました。
幸いなことに1台しかインストールをしていなかったので良かったです。

「Connection Stringを初期化」なのですが、
開発環境でのデバックは何の問題もなく通ります。
このような感じでDBには接続しているのですが・・・
なにかおかしいところはありますか??

Dim oConn As New OleDbConnection()
Dim oCommand As New OleDbCommand()

'DB接続文字列の設定
pass = ini.GetProfileString("info", "ConnectFile", "")
oConn.ConnectionString = pass

'コネクションの設定
oCommand.Connection = oConn

'DB接続
oConn.Open()  ←この行でエラーが出てるみたいです。

passにはDB接続のデータリンクのパスをINIファイルから持ってきています。


特攻隊長まるるう  2004-06-24 20:32:51  No: 114212

あれ?OleDb 使ってるんだ?ADO は使う必要なし?
…まあ、いいや(^^;)

>INIファイルから持ってきています。
なんて書かれてもちゃんと接続文字列が取れてるなら
テキストファイルから取って来てもエクセルファイルから
取って来てもデータベースから取って来ても他アプリから
取って来ても何でもよろしい。

接続文字列が、開発環境で有効で、インストール先で無効な
何かを含んでるんじゃないですか?


プログラマ1年生  2004-06-24 21:01:47  No: 114213

>OleDb 使ってるんだ?
自分はてっきりADOを使って接続していると思い込んでました^^;

oConn.ConnectionString にUDLまでのパスを直接記述したらうまくいきました^^

たぶんBINフォルダにあったINIファイルもパッケージ化されてプログラムで判別するINIファイルまでのパスが変わったことによりUDLまでのパスを拾ってこれなかったと思います。

いろいろ有難うございました^^これからもなにかあったら宜しくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加