-1

こんにちは、誰かが私を助けてくれることを願っています。

SQL データベースのパスワードを読み取り、ユーザーの画面に表示する小さな WPF アプリを作成しました。SQL DB では問題なく動作しますが、SQLite を使用するように変更しました。私のマシン (プログラムを作成したマシン) では問題なく動作しますが、ユーザーに .exe ファイルを渡すと、プログラムがクラッシュします。 OpenFileDiaglog() のボタンをクリックするとすぐに (これは、ユーザーがデータベースを選択してパスワードを取得できるようにするためです)

いくつかの試行錯誤 (コードの一部をコメントアウトする) の後、この行に到達するとクラッシュするように見えます。

 SQLiteConnection Dbcon = new SQLiteConnection("Data Source= " + Myfile);

しかし、マシンのイベントビューアーでは、エラーでプログラムを実行しようとしています

説明: 未処理の例外が原因でプロセスが終了しました例外情報: System.IO.FileNotFoundException

いくつかの異なるマシン (vista、xp、win 7) で .exe ファイルを使用しようとしましたが、そのすべてに .net Framework 4.0 がインストールされています。

私が言うように、マシンが移動されたときにのみ、マシン上ですべての作業が完全に機能し、エラーが発生します。

どんな助けでも大いに役に立ちます

4

2 に答える 2

0

ユーザー マシンでデータベースのパスを調整する必要があるため、デプロイ時に DataSource に偽のパスが存在します。

Data Source= Path of your databse

このコードをお勧めします

"Data Source=" + System.IO.Path.Combine(System.IO.Path. GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), YourFile)
于 2013-03-26T10:11:53.370 に答える
0

同じ問題ですが、これで解決しませんでした。私にとっての問題は、メインアプリが.net 4にあり、sql lite dllが.net 2であるためuseLegacyV2RuntimeActivationPolicy="true"、属性としてapp.configの起動タグに追加することでした。

于 2016-11-21T14:24:47.800 に答える