(これはstackoverflow.comで尋ねられた重複した質問です。回答を読みました。解決策を試しましたが、問題は解決しませんでした。私の問題とは何か、何が問題なのかを説明しますやりました)。
これは私の問題です:
私のアプリケーションは System.Data.SQLite.DLL を使用していました。参照して自分のパソコンでは正常に動作しましたが、別のパソコンでは動作しませんでした。これはエラーメッセージです:
System.IO.FileLoadException: ファイルまたはアセンブリ 'System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' またはその依存関係の 1 つを読み込めませんでした。サイド バイ サイド
構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーション イベント ログを参照するか、コマンド ライン sxstrace.exe ツールを使用してください。
(HRESULT からの例外: 0x800736B1) ファイル名: 'System.Data.SQLite、Version=1.0.88.0、Culture=neutral、PublicKeyToken=db937bc2d44ff139' ---> System.Runtime.InteropServices.COMException (0x800736B1): アプリケーションが失敗しました並んでいるので始める
構成が正しくありません。詳細については、アプリケーション イベント ログを参照するか、コマンド ライン sxstrace.exe ツールを使用してください。
(HRESULT からの例外: 0x800736B1) SimPB.config.PrepareDatabase() で SimPB.config.InitializeProgram() で SimPB.Program.Main() で
私のコンピューターは、Windows 7 32 ビット、Visual Studio 2010 を実行しています。
別のコンピューターも、Visual Studio がインストールされていない Windows 7 32 ビットを実行しています。
私が試したこと:
試行 1:アプリケーションがRelease + x86でビルドされ、アプリケーションがターゲット フレームワーク: .NET Framework 2.0でビルドされていることを確認します。終わり。
試行 2:アプリケーションが System.Data.SQLite の正しいビルド (x86 + .Net Framework 2.0 (sqlite-netFx20-binary-Win32-2005-1.0.88.0)) で参照されていることを確認します。終わり
試行 3: App.config で次のコードを試してください。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
この
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>
この
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
終わり。
試行 4:別のコンピューターでユーザー アカウント制御をオフにしてみてください。終わり。
試行 5:別のコンピューターに Visual C++ ランタイムをインストールしてみます (Visual Microsoft Visual C++ ランタイム 2010 再頒布可能パッケージ (x86) をインストールし、2005 バージョンも試しました)。終わり。
試行 6: .NET Framework 2.0 SP2 を再インストールしてみてください。受信エラー:
Microsoft .NET Framework 2.0 SP2 をインストールまたは構成するには、コントロール パネルの [Windows の機能の有効化または無効化] を使用する必要があります。
更新:(回答とコメントを読んだ後)
試行7: System.Data.SQLite.DLLが出力ビンフォルダーにあることを確認してください。終わり
試行 8:別のコンピューターが 32 ビット Windows 7 を実行していることを再確認します。完了
試行 9: .csproj ファイルの HintPath 宣言を変更します: これを
変更します:
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>E:\Developer Soft\SQLite\sqlite-netFx20-binary-bundle-Win32-2005-1.0.88.0\System.Data.SQLite.dll</HintPath>
</Reference>
これに:
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>..\System.Data.SQLite.dll</HintPath>
</Reference>
試行 9 で完了。
上記の試行の後、結果は同じです。アプリケーションは自分のコンピューターからは正常に実行できますが、別のコンピューターでは実行できませんでした。
これは、オープンソースのフリーウェア、Simple Phone Bookです。最新のソース コードをソース コントロール サーバーにコミットしてアップロードしました:
http://simpb.codeplex.com/SourceControl/list/changesets (変更セット番号: fd847ac6c406)