Sql server 2008 如何部署SQL Server Compact Edition 4.0?
如何部署Sql server 2008 如何部署SQL Server Compact Edition 4.0?,sql-server-2008,deployment,sql-server-ce,ado,xcopy,Sql Server 2008,Deployment,Sql Server Ce,Ado,Xcopy,如何部署 SQL Server Compact Edition(当前版本为4.0)是: 软件开发人员可用于构建Windows桌面应用程序的免费嵌入式数据库。它占地面积小,支持在应用程序文件夹中私有部署其二进制文件 但实际上如何部署它呢 微软说它可以 微软也表示它不可能 有些人有,但他们没有详细说明完成部署所需的细节 问题是,除非ADO OLEdb提供程序已注册,否则无法使用它。必须以管理员身份注册OLEdb提供程序。这意味着SQL Server Compact edition对于非管理员用
SQL Server Compact Edition(当前版本为4.0)是: 软件开发人员可用于构建Windows桌面应用程序的免费嵌入式数据库。它占地面积小,支持在应用程序文件夹中私有部署其二进制文件 但实际上如何部署它呢
- 微软说它可以
- 微软也表示它不可能
- 有些人有,但他们没有详细说明完成部署所需的细节
redist_enu.txt
文件:
列出的.exe文件各自将其附带的组件安装到目标计算机上的特定位置。这有助于确保可维护性和技术支持。这些.exe文件中包含的.dll文件在此redist.txt中也可以单独使用。但是,这些单独的.dll的分发可能会导致可用性问题。有关更多详细信息,请参阅
通过面包屑进行私有部署检测:不支持仅对本机堆栈进行私有部署,不支持通过Assembly.LoadFrom()、.local文件显式加载SQL Server Compact程序集,也不支持使用DLL/COM重定向策略,这可能会导致可维护性问题。有关更多信息,请参阅和
Microsoft SQL Server Compact 4.0
SSCERuntime_x86-ENU.exeSSCERuntime_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的信息 在未记录的
程序文件
文件夹中随机拼音,我找到了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复制到一个文件夹,并尝试使用以下方法打开一个dll:
但它失败,出现0x80004005未指定错误
我已经创建了解决方案 SQL Server Compact Edition由7个DLL组成:
未记录的本机平面API库(.netsqlceme40.dll
程序集是此dll的包装器)System.Data.SqlServerCe.dll
实现sqlceca40.dll
、引擎
、复制
和一些其他COM对象的COM dll错误
为SSCE实现OLEdb提供程序的COM dll(允许使用ADO)sqlceoledb40.dll
未知sqlcese40.dll
未知sqlceqp40.dll
未知sqlcecompact40.dll
未知sqlceer40en.dll
- 必须安装应用程序(您不想这样做)
- 要求用户具有管理权限(您不希望这样做)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="client"
type="win32"
/>
<description>Hyperion Pro</description>
<!-- We have a dependancy on SQL Server CE 4.0 -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.SQLSERVER.CE.4.0"
version="4.0.0.0" processorArchitecture="x86"
/>
</dependentAssembly>
</dependency>
海伯龙专业版
真的
您可以将此文件放在可执行文件旁边(作为Hyperion.exe.manifest
),也可以将其作为RT\u manifest
资源构建到应用程序中
请注意,我们对名为Microsoft.SQLSERVER.CE.4.0的as程序集具有依赖性。我们首先通过创建一个名为的目录来创建此程序集:
Microsoft.SQLSERVER.CE.4.0
部署应用程序时,您将把构成此“程序集”的所有7个dll与一个特殊的.manifest
文件一起放入此Microsoft.SQLSERVER.CE.4.0
子文件夹:
Sql Server Ce 4.0 SP1的
:
我没有解决部署中的所有繁琐问题,而是选择将安装文件本身作为EmbeddedResource包含到我的exe中,并做了以下小帮助:
公共静态类重分类器
{
私有静态只读ILog Log=LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
>regsvr32 sqlceca40.dll
>regsvr32 sqlceoledb40.dll
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="client"
type="win32"
/>
<description>Hyperion Pro</description>
<!-- We have a dependancy on SQL Server CE 4.0 -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.SQLSERVER.CE.4.0"
version="4.0.0.0" processorArchitecture="x86"
/>
</dependentAssembly>
</dependency>
|--Your App Dir
|--x86 (x86 sql ce binaries)
|--amd64 (amd64 sql ce binaries)