3


1

App.configファイルに構成を追加する際のエラー

関連質問:https://stackoverflow.com/questions/4225667/running-my-application-on-another-machine-gives-me-an-error [別のマシンでアプリケーションを実行するとエラーが発生します]

App.configファイルは次のようになります。


これを開発マシンで実行すると動作しますが、別のコンピューターにデプロイすると、データプロバイダーエラーが発生します。 (上記の関連する質問を参照)。

推奨される解決策は、これをApp.configファイルに追加することです。


それをApp.configファイルに追加すると、Visual Studio 2010でアプリケーションを起動したときに次のエラーが表示されます。

_ system.dataの構成セクションハンドラーの作成中にエラーが発生しました:列 'InvariantName’は一意に制限されています。 値 'System.Data.SQLite’は既に存在します。 (C:\ Users \ Sergio.Tapia \ Desktop \ DocumentScannerDanyly \ DocumentScannerDanyly \ bin \ Debug \ DocumentScannerDanyly.vshost.exe.Config line 13) _

このエラーとは何か提案はありますか? また、 .sqlite file is relative to where it is installed, do I have to change AppConfigファイルのconnectionStringをより動的なものに?

助けてくれてありがとう。

編集:

ここで誰かが提案したようにこれを設定に追加すると、エラーが発生します:


_ 登録された.Net Frameworkデータプロバイダーの検索またはロードに失敗しました。 _

3 Answer


11


これは、SqlLiteをインストールすると、machine.configが次のように更新されるためです。


SqlLiteがインストールされているマシンで実行していないため、DbProviderFactoriesはSqlLiteを認識しません。

宛先マシンにSqlLiteをインストールするか、これを構成に追加します。


これにより、machine.configとの競合が停止し、ターゲットマシンで動作するようになります。 他のSqlデータプロバイダーを使用している場合は、それも追加する必要があります。

EDIT

クリアが機能しない場合は試してください:



3


私が得た上記のソリューションを追加するとき、私は同じ正確な問題を抱えていました

_ 登録された.Net Frameworkデータプロバイダーの検索またはロードに失敗しました。 _

しかし、それを解決したのは、リファレンスの「System.Data.SQLite」および「System.Data.SQLite.Linq」に対して「ローカルコピー」をtrueに設定することでした。

あなたにも役立つことを願っています。


2


問題はおそらく、接続文字列にデスクトップへのパスをハードコーディングしていることです。

C:\Users\Sergio.Tapia\Desktop\DocumentScannerDanyly\DocumentScannerDanyly\DocumentsDB.sql

このファイルが他のマシンとまったく同じ場所に存在しない限り、動作しない可能性があります