Cia*_*uen 6 sql-server sql-server-ce
我正在使用Visual Studio 2008 C#开发Windows窗体应用程序,该应用程序在客户端上使用SQL Server Compact 3.5数据库.客户端很可能是32位Windows XP或Windows Vista计算机.我正在使用标准的Windows Installer项目创建一个MSI文件和setup.exe来在客户端计算机上安装该应用程序.我是SQL Server Compact的新手,所以我之前不必分发像这样的客户端数据库.当我运行setup.exe(在新的Windows XP 32位SP2和Internet Explorer 7上)它安装正常,但是当我运行应用程序时,我收到此错误:
无法加载DLL的'sqlceme35.dll'.指定的模块无法找到
我已经花了几个小时来搜索这个错误,但是我能找到的只是与64位Windows安装有关的问题,而且与我正在使用的普通32位无关.
安装应用程序将找到的所有相关文件复制到指定的安装目录中,包括System.Data.SqlServerCe.dll文件(程序集版本3.5.1.0).数据库文件位于应用程序目录下名为"data"的目录中,其连接字符串为
<add name="Tickets.ieOutlet.Properties.Settings.TicketsLocalConnectionString" connectionString="Data Source=|DataDirectory|\data\TicketsLocal.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
Run Code Online (Sandbox Code Playgroud)
我有一些问题:
您不需要它在GAC中运行SQL Server Compact,它将从应用程序目录中选择它们.有几种方法可以部署SQL Server Compact项目.两种主要方式是:
使用您的项目部署SQL Server Compact可再发行组件安装程序,但这种方式很痛苦,也可能被最终用户取消,或者通过Windows更新进行升级并破坏您的应用程序.
在您的应用程序文件夹中包含DLL文件.根据您使用的SQL Server Compact的功能(复制或其他),您可以在应用程序文件夹中部署一些DLL文件.
如果您的计算机上安装了SQL Server Compact,则它们很可能位于"C:\ Program Files\Microsoft SQL Server Compact Edition\v3.5"中.可以将它们添加到Visual Studio中的项目中,然后将其项目输出类型设置为"始终复制".System.Data.SqlServerCe您在项目引用中的主要参考应该将copy local设置为true.
如果您已经设置了这些,那么在您的安装程序项目中,您必须包含的是此项目的项目输出,并且您很好.在我看来,这是唯一的出路.它是一个简单的部署,由几个文件组成,您可以控制应用程序使用的DLL版本.
我希望有所帮助.