0
所以有這個叫火鳥涼爽的數據庫,它可以用來嵌入。 .net提供者(據我所知)它使用fbembed.dll,它有兩種口味:32和64位。Firebird數據庫,.net提供程序,它如何選擇32位或64位fbemeb.dll?
如何.NET數據提供程序找到正確的一個正在運行的環境?
所以有這個叫火鳥涼爽的數據庫,它可以用來嵌入。 .net提供者(據我所知)它使用fbembed.dll,它有兩種口味:32和64位。Firebird數據庫,.net提供程序,它如何選擇32位或64位fbemeb.dll?
如何.NET數據提供程序找到正確的一個正在運行的環境?
它本身並不能選擇。您必須在當前文件夾中有32位/ 64位dll才能加載提供程序。
如果應用程序是在32位的環境(在32/64位操作系統或在32位操作系統AnyCPU應用32位應用程序)上運行時,提供者將加載DLL和期望它是32位。否則,你會得到不好的圖像格式錯誤。同樣適用於64位環境。
出於這個原因,我總是創建我的應用程序的MSI的兩個版本 - 一個帶有32位的DLL和其他64位。應用程序本身保持不變(AnyCPU),因此操作系統確定需要什麼DLL。我已經使用嵌入Firebird 8年多了,這種做法對我來說是最容易遵循的。