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年多了,这种做法对我来说是最容易遵循的。