Firebird というクールなデータベースがあり、組み込みで使用できます。.net プロバイダー (私が理解している限り) は、32 ビットと 64 ビットの 2 つのフレーバーがある fbembed.dll を使用します。
.net データ プロバイダーは、実行中の環境に適したものをどのように見つけますか?
Firebird というクールなデータベースがあり、組み込みで使用できます。.net プロバイダー (私が理解している限り) は、32 ビットと 64 ビットの 2 つのフレーバーがある fbembed.dll を使用します。
.net データ プロバイダーは、実行中の環境に適したものをどのように見つけますか?
それ自体は選択しません。プロバイダーをロードするには、現在のフォルダーにその 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 年以上使用しており、その方法は私にとって最も簡単に実行できます。