2017-11-08 4 views
1

Iveは.dbfデータベースを読み込んで結果をxmlファイルに出力するコンソールエフェクトを作成しました。開発マシン(64ビット、勝利10、ビジュアルスタジオ2015) exeは64ビットマシンで正常に動作しますが、32ビットマシンではクラッシュします。私は、x86 properties.dbf接続32bitマシンでの接続

アイブ氏は、異なる接続文字列の数を試みたターゲットにビルドを設定している

、x64のマシン上で動作するものが

con.ConnectionString = @"Provider=VFPOLEDB;Data Source=" + path + ";"; 

ですこれは、「無効な例外エラーをスローします32ビットマシンで実行すると、VFPOLEDB「プロバイダはローカルマシンに登録されていません」

x64で動作する2番目の接続文字列は

です。
_connection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=dBASE IV;"; 

これは、「VFPOLEDB.1」プロバイダがローカルマシンに登録されていないためです。「32ビットマシンで実行している場合。

VS2013を32ビットWindows 7マシンにセットアップして同じコードを実行すると、devモードと、別途作成されたexeを実行するだけで動作します。

ほとんどのアドバイスや提案が大歓迎です。

+0

あなたがインストールしましたVFPOLEDBは、そのマシンで再配布可能なものですか? –

+0

私はそれをインストールしていないので、私のテストマシンに問題を解決します。ありがとう、しかし、これは私のexeファイルにインストールするためにこれは大きなプログラムの一部として(顧客へ) – CM99

+0

心配しないで、私たちは私たちの問題を解決するメインプログラムにdllを含めることができますので、アレックス!回答を投稿すること自由に感じる:) – CM99

答えて

1

あなたのターゲットマシン上のFoxPro OLEDBプロバイダ(VFPOLEDB)をインストールする必要があります。

https://www.microsoft.com/en-us/download/details.aspx?id=14839

(おそらく最高というだけでVfpOleDB.dllをコピーするよりも、このパッケージを使用する)

関連する問題