2012-05-25 23 views
1

我打包了使用数据库的WPF C#应用程序。使用数据库打包C#应用程序

但是,当我安装打包的应用程序时,它使用的是我在开始时通过visual studio(.mdf)创建的数据库,而不是创建另一个。

包装应用程序的全部目的是让我可以在其他计算机上共享它,所以我安装它,我需要它为应用程序的实例创建一个新的数据库。

有没有办法做到这一点? 是否有一个属性,我需要设置说数据库是本地实例?或者强制软件包在安装时创建一个新的软件包?

任何帮助将不胜感激。

谢谢。

+0

有每台客户端计算机上的SQL服务器? –

+0

您使用SQL Server CE吗? –

+0

您需要更改连接字符串以将数据库附加到SQL Server。 –

回答

1

请确保您的数据库部署在客户端,并更改应用程序中的连接字符串以指向它。

2

刚刚在自己做这件事的时候,我建议的一件事是使用SQL Compact Edition使得该过程变得更容易,但是如果此时过程太迟,那么坚持使用当前数据库,但是我不知道下面的方法是否适用于MDF文件。

如何在客户机上部署应用程序?用户机器是否安装了SQL?

你需要做的第一件事就是去你的MDF的属性,并确保复制到输出目录设置为复制如果更新,建立操作设置为内容。

如果您使用的是安装项目来安装应用程序,那么您需要确保在项目,应用程序属性,发布,应用程序文件中您的mdf在列表中并且设置为数据文件自动,必需并包括。

,并在安装程序文件系统中的“应用程序文件夹”点击右键,然后加入, 项目输出,文件内容

最后更改连接字符串中的代码,以便它读取

using (SqlCeConnection sqlCon = new SqlCeConnection(@"Data Source=|DataDirectory|\App.sdf;Persist Security Info=False;") 

,或者如果你不使用精简版

using (SqlConnection sqlCon = new SqlConnection(@"Data Source=|DataDirectory|\App.mdf;Persist Security Info=False;") 

^使用“DataDirectory目录”的意思是你不关心用户将ŧ他的应用程序,你将永远得到正确的文件

在运行之前,并将您的数据库更改为紧凑,它不支持适当的SQL数据库将很多东西。

这一切后,你仍可能会遇到错误的权限,并因为它很长篇大论我可能已经错过了一个步骤,只是如果你需要更多的评论?

编辑 如果用户不具有SQL Server或SQL精简,你的最简单的办法是要求他们安装SQL CE或有使用该做同样的事情DLL文件的方式,但我不能”吨得到那工作

的链接,也就是在这里http://msdn.microsoft.com/en-us/library/aa983326.aspx

相关问题