8

関連する質問の回答を調べてみましたが、数年も経っていないもの (それらがまだ頼りになる回答であるかどうかは不明) や、私の質問に完全に回答しているものは見つかりませんでした。

要件:

  • 32 ビットと 64 ビットの両方のコンピューターで実行する C# アプリケーションを開発しています。私のクライアントは、x86 と x64 に基づいて 2 つの異なるリリースを作成することを望んでいません。
  • SQLite、VS2012、および .NET 4.5 を使用しています。SQLite で利用可能な DLL は次のとおりです: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

残念ながら、DLL は 32 ビットまたは 64 ビットのリリースに分割されています。

質問:

  • 両方の DLL を含めて、プロセッサに基づいて切り替えることは可能ですか? どうすればいいですか?
  • GACについて少し読んだことがありますが、読んだことから、それはローカルソリューションです。これをアプリケーションに実装するには、インストールごとに DLL を GAC にインストールする必要がありますよね?
  • プログラムを 64 ビット環境で 32 ビット モードで強制的に実行することはできますか? その場合、64 ビットの利点は失われますが、プログラムを両方の環境で問題なく実行できますか?

私の状況でうまくいくかどうかわからないいくつかの可能な答え:

4

1 に答える 1

13

はい。NuGet パッケージSystem.Data.SQLiteを使用するだけです。x86 および x64 サブディレクトリがプロジェクトにインストールされ、コンパイルされるとビンにインストールされます。32 ビットと 64 ビットの相互運用 DLL はこれらにコピーされ、CPU に基づいて実行時に適切に選択されます。したがって、「任意の CPU」を選択してビルドし、32 ビットまたは 64 ビット Windows でアプリケーションを実行できます。

于 2013-10-27T21:34:27.273 に答える