如何部署Microsoft SQL Server Compact4.0
(目前版本为4.0)是:
一个免费的嵌入式数据库,软件开发人员可以用来构建Windows桌面应用程序。它占用空间小,并且支持在应用程序文件夹中私有部署其二进制文件。
但是你是如何部署它的呢?
问题是,除非注册了ADO OLEdb提供程序,否则不能使用它。注册OLEdb提供程序必须作为管理员完成。这意味着对于非管理员的用户来说,将失败。
SQLServerCompact4.0附带一个redist_enu.txt文件:
列出的.exe文件每个都将其封闭的组件安装到目标计算机上的特定位置。这有助于确保可使用性和技术支持。这些.dll文件中包含的.exe文件在这个redist.txt中也是单独可用的。但是,这些单独的.dlls的发行版可能会导致服务性问题。有关更多细节,请参见http://go.microsoft.com/fwlink/?LinkId=94589 通过BreadCrumb进行私有部署检测:不支持仅通过本机堆栈进行私有部署,并通过Assembly.LoadFrom()、.local文件或使用DLL/COM重定向策略显式加载Server压缩程序集,并可能导致服务性问题。有关更多信息,请参见http://support.microsoft.com/kb/835322和http://msdn2.microsoft.com/en-us/library/aa375142.aspx Microsoft SQL Server Compact4.0 SSCERuntime_x86-ENU.exe SSCERuntime_x86-DEU.exe SSCERuntime_x86-FRA.exe SSCERuntime_x86-JPN.exe SSCERuntime_x86-RUS.exe SSCERuntime_x86-ESN.exe SSCERuntime_x86-ITA.exe SSCERuntime_x86-KOR.exe SSCERuntime_x86-CHT.exe SSCERuntime_x86-CHS.exe SSCERuntime_x64-ENU.exe SSCERuntime_x64-DEU.exe SSCERuntime_x64-FRA.exe SSCERuntime_x64-JPN.exe SSCERuntime_x64-RUS.exe SSCERuntime_x64-ESN.exe SSCERuntime_x64-ITA.exe SSCERuntime_x64-KOR.exe SSCERuntime_x64-CHT.exe SSCERuntime_x64-CHS.exe sqlcese40.dll sqlceqp40.dll sqlceoledb40.dll sqlceca40.dll sqlceme40.dll sqlcecompact40.dll sqlceer40en.dll sqlceer40cn.dll/sqlceer40zh-CHS.dll sqlceer40de.dll sqlceer40es.dll sqlceer40fr.dll sqlceer40it.dll sqlceer40ja.dll sqlceer40ko.dll sqlceer40tw.dll/sqlceer40zh-CHT.dll sqlceer40ru.dll System.Data.SqlServerCe.dll System.Data.SqlServerCe.Entity.dll
但是它没有提供任何关于如何重新分发SQLServerCompact4.0的信息。
在无文档的Program Files文件夹周围随意拼写,我找到了7个dll:
C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\
      sqlceoledb40.dll
      sqlceqp40.dll
      sqlcese40.dll
      sqlceca40.dll
      sqlcecompact40.dll
      sqlceer40EN.dll
      sqlceme40.dll注意:还有一些带有更多dll的子文件夹
我尝试将这7个dll复制到一个文件夹中,并尝试使用ADO连接打开连接字符串
Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source="store.sdf"但是它在0x80004005 Unspecified error中失败了
我试着给小部件起泡,但它使小部件发亮。
发布于 2019-06-20 18:59:13
不确定是否有什么改变。但是,使用最新的Server包,不再需要应用程序清单。您将得到两组二进制文件: x86和amd64。只需将它们复制到x86和/或amd64子目录下的目标文件夹即可。
|--Your App Dir
   |--x86 (x86 sql ce binaries)
   |--amd64 (amd64 sql ce binaries)你可以走了。看起来,System.Data.SqlCe.dll可以自动找到并加载本机二进制文件。如果您的应用程序只针对一个平台,也可以在应用程序dir中部署它们。
https://stackoverflow.com/questions/10739845
复制相似问题