web-dev-qa-db-ja.com

ファイルまたはアセンブリ 'System.Data.SQLite'またはその依存関係の1つを読み込めませんでした。間違った形式のプログラムを読み込もうとしました

Sqliteプロジェクトで64ビットのAspxを使用しようとしています。プロジェクトを実行すると、次のエラーが発生しました。

ファイルまたはアセンブリ「System.Data.Sqlite」またはその依存関係の1つを読み込めませんでした。不正な形式のプログラムを読み込もうとしました。

問題を修正するためにEnable 32-Bit AplicationsTrueに設定したのですが、それでも問題は解決しません。 .Net 4 Frameworkを使用しています。 64-bit SQlite .dllをダウンロードしてプロジェクトに含めましたが、それでも問題は解決しませんでした。これを解決するにはどうすればよいですか?

画像を投稿できなかったので。エラーログを投稿しています

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.BadImageFormatException: Could not load file or Assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program with an incorrect format.

=== Pre-bind state information ===
LOG: User = SANZ\Administrator
LOG: DisplayName = System.Data.SQLite
 (Partial)
WRN: Partial binding information was supplied for an Assembly:
WRN: Assembly Name: System.Data.SQLite | Domain ID: 36
WRN: A partial bind occurs when only part of the Assembly display name is provided.
WRN: This might result in the binder loading an incorrect Assembly.
WRN: It is recommended to provide a fully specified textual identity for the Assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.Microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/Users/Administrator/Documents/Visual Studio 2010/Projects/StoneCarving/StoneCarving/
LOG: Initial PrivatePath = C:\Users\Administrator\Documents\Visual Studio 2010\Projects\StoneCarving\StoneCarving\bin
Calling Assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Administrator\Documents\Visual Studio 2010\Projects\StoneCarving\StoneCarving\web.config
LOG: Using Host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based Assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/c78c2519/83a165be/System.Data.SQLite.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/c78c2519/83a165be/System.Data.SQLite/System.Data.SQLite.DLL.
LOG: Attempting download of new URL file:///C:/Users/Administrator/Documents/Visual Studio 2010/Projects/StoneCarving/StoneCarving/bin/System.Data.SQLite.DLL.
ERR: Failed to complete setup of Assembly (hr = 0x8007000b). Probing terminated.

Stack Trace:

[BadImageFormatException: Could not load file or Assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +39
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) +132
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +144
   System.Reflection.Assembly.Load(String assemblyString) +28
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46

[ConfigurationErrorsException: Could not load file or Assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +618
   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +209
   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178
   System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +94
   System.Web.Compilation.BuildManager.CallPreStartInitMethods() +332
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +591

[HttpException (0x80004005): Could not load file or Assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +8946484
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +258
8
user3342876

NuGetを使用しない場合、または自分でsqliteアセンブリを参照する場合は、正しいプラットフォームバージョン(x64とx86)を使用していることを確認してください。

両方のプラットフォームをサポートするために、System.Data.SQLite.dllを参照し、SQLite.Interop.dlを保持するためにプラットフォームごとに2つの個別のフォルダーを追加できます。

公式のsqliteダウンロードサイトからコピー:

  • bin\System.Data.SQLite.dll(必須の管理対象専用コアアセンブリ)
  • bin\x86\SQLite.Interop.dll(必須、x86ネイティブ相互運用機能アセンブリ)
  • bin\x64\SQLite.Interop.dll(必須、x64ネイティブ相互運用機能アセンブリ)

この設定により、アプリはx64プラットフォームとx86プラットフォームの両方で実行できます。詳細については、sqliteダウンロードサイトを参照してください ここ

7
techhero

Nugetが私にとっての最終的な解決策でした。私は、Windows 8.1 64ビットを使用しているためx64を使用していましたが、x86を使用する必要があります。一度インストールSystem.Data.SQLite enter image description here

6
Kris1

Visual Studioを使用している場合は、パッケージマネージャーを使用してインストールしてみてください http://www.nuget.org/packages/system.data.sqlite 。これは、依存関係ツリーの問題に役立つ可能性があります。

1
JBone