0

Firebird というクールなデータベースがあり、組み込みで使用できます。.net プロバイダー (私が理解している限り) は、32 ビットと 64 ビットの 2 つのフレーバーがある fbembed.dll を使用します。

.net データ プロバイダーは、実行中の環境に適したものをどのように見つけますか?

4

1 に答える 1

2

それ自体は選択しません。プロバイダーをロードするには、現在のフォルダーにその 32 ビット/64 ビット dll が必要です。

アプリケーションが 32 ビット環境 (32/64 ビット OS の 32 ビット アプリケーションまたは 32 ビット OS の AnyCPU アプリケーション) で実行されている場合、プロバイダーは DLL をロードし、それが 32 ビットであると想定します。そうしないと、不正な画像形式エラーが発生します。同じことが 64 ビット環境にも当てはまります。

このため、私は常にアプリケーションの MSI を 2 つのフレーバーで作成します。1 つは 32 ビット dll で、もう 1 つは 64 ビットです。アプリケーション自体は同じまま (AnyCPU) であるため、必要な DLL は OS によって決定されます。私は Firebird 組み込みを 8 年以上使用しており、その方法は私にとって最も簡単に実行できます。

于 2015-12-21T15:13:46.157 に答える