0

経験を積むためだけに、単純な WPF アプリケーションを作成しました。ユーザーがボタンをクリックすると、データベースから情報を取得するだけです。
アプリケーションは私の PC では (公開オプションを使用して) 正常に動作しますが、ラップトップと友人の PC で実行しようとすると、ボタンを押すとすぐにアプリがクラッシュしました。
データベースに接続するために使用する Entity Framework と関係があると 99% 確信しています (ボタンのクリックで実行されるすべての機能は、接続して DB から情報を取得することです)。

Googleで答えを探した後、PCへの.netのインストール、またはプロジェクトの参照に関係がある可能性があることがわかりました。

ただし、.net FW のバージョンは私の PC とラップトップで同じであり、参照はすべてコピー ローカルとしてマークされていました (テストのためだけに!)。

他に何がそのような問題を引き起こす可能性がありますか? もう本当にわからない…

アップデート

例外を使用して、私が得たエラーは次のとおりであることがわかりました。
The specified store provider cannot be found in the configuration, or is not valid.

また、Googleでさらに深く検索することで、この問題を解決しました。
解決策は以下にあります...

ハッピーコーディング!

4

3 に答える 3

2

ユーザーがボタンをクリックすると、データベースから情報を取得するだけです。

アプリケーションでは、Entity Framework を介してデータベースにアクセスしています。データベースへの接続が失敗しており、そのためにアプリケーションがクラッシュしていると推測できます。アプリケーション用のデータベースがあることを確認してください。

アプリケーションがクラッシュしたときに詳細を表示できるように、例外をログに記録することもお勧めします。

于 2013-01-04T12:14:33.320 に答える
1

やっと解決しました!


1) プロジェクトに MySql.Data.dll、MySql.Web.dll、MySql.Data.Entity.dll、および System.Data.Entity.dll への参照があることを確認します。

2) 上記のすべてを Copy-Local に設定します。

App.config3) 次の行をファイル に追加します。

  <system.data>
  <DbProviderFactories>
    <clear />
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
    description=".Net Framework Data Provider for MySQL"
    type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
    Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>

4) MySQL.Data 参照をクリックし、バージョンを確認します。選択すると、ソリューション エクスプローラーの下の [プロパティ] ウィンドウに表示されます。

5)Version=6.4.4.0パーツを MySql.Data.dll のバージョンに変更します。私のは6.5.4.0でしたが、これは最新ですが、古いバージョンでも問題なく動作するはずです。

また、 Ralf de Kleineと、例外コードを提示/提案してくれた回答者全員に感謝します。
例外がとても便利なのに、例外を使用することを考えないのはばかげていました!

于 2013-01-04T13:02:11.917 に答える