2015-04-20 32 views
0

我有一个使用SQL Server 2008 R2数据库的C#.NET应用程序。如何将应用程序部署到许多用户

我没有问题将实际的应用程序部署到多台PC上,但是我在部署数据库时遇到了一个麻烦。该应用程序将被大量用户使用 - 它可以由任何人下载和安装。我的问题是应用程序使用连接字符串连接到数据库。

我该如何将数据库作为使用Visual Studio发布工具进行安装的一部分,并确保它可以在具有相同连接字符串的任何安装上工作。

我花了很长时间搜索,并尝试了很多潜在的解决方案,包括this, however in the latter particular case,应用程序在部署时找不到数据库。

+1

你希望每个用户连接到相同的数据基础还是每个人都有他/她自己的数据库?在第二种情况下,您应该使用随应用程序一起提供的数据库文件,或者如果它不太复杂,可以考虑另一种文件类型,例如xml。 – Sami

+0

@Sami - 我希望每个用户使用他们自己的数据库,并以某种方式捆绑它。我已经在上面发布的链接中尝试了解决方案,但它没有奏效。 – database

+0

请发布您的连接字符串。 – Sami

回答

0

根据你给定的SQL连接,似乎使用SQL Server Express版本,捆绑Express Edition与您的应用程序,这里的选项你ARE,

  1. 添加SQL服务器表达版安装程序在安装介质,并通过您的安装程序调用setup.exe
  2. 或者您可以使用Web平台安装程序
  3. 或者您可以简单地检查您的安装程序,是否安装了所需的SQL Server Express Edition,如果没有,则将消息显示给用户即“请安装Sql Server Express Edition”,并指导他/她可以安装,例如提供下载链接

或者你也可以使用Sql Server Compact Edition这是一个轻量级版本,我认为只有少数DLL才能在最终用户的PC上运行。

欲了解更多信息:

的SQL Server Express版:

http://blogs.msdn.com/b/user_ed/archive/2012/12/09/how-to-embed-sql-server-express-in-an-application.aspx

SQL Server精简版:

https://msdn.microsoft.com/en-us/library/aa983326(v=vs.140).aspx

+0

我有SQL Server 2012 Express在我的开发机器上 - 这是否意味着我需要在用户的PC上安装相同的版本?我已经在测试用户的PC上安装了SQL Server 2012 Express LocalDB,但在尝试加载应用程序时出现网络/实例问题。 – database

+0

确保您已正确安装Sql Server Express Edition,并且您还可以使用Visual Studio或Sql Server Management Studio测试连接。网络/实例错误表明服务没有运行,或者连接字符串中存在问题 – sallushan

+0

我现在已经删除了SQL Express LocalDB并尝试使用SQL Compact方法,但是同样的事情正在发生。请注意,在我的开发PC上,使用该连接字符串连接到数据库没有问题。所以我不认为问题出在那里 – database