.net 如何使用ClickOnce部署SQL和附加DB:?
我需要部署一个使用多个db的winform应用程序。当它们在本地交互时,我需要用我的应用程序部署它们 我可以使用ClickOnce,还是应该考虑另一种方法?我找到了ClickOnce的几个例子,但它们都假设DB包含在解决方案中,但这里的情况并非如此 这个应用程序曾经是一个网络应用程序,DB和DAL反映了这一点。我还使用合并复制,将这些本地数据库合并到中心数据库 我的最佳方法是编写数据库创建脚本,并在安装期间以某种方式运行这些数据库,然后启动合并复制以填充表吗?DB还包含超过100个存储过程,这些存储过程并不总是能很好地处理Merge Repl,因此我需要能够在初始安装中也包含这些存储过程 否则,我想我可能会想出如何在安装过程中连接数据库,其中包括存储过程,但我也不知道怎么做 我愿意听取关于如何使用4个独立的SQL DB部署此应用程序的所有建议.net 如何使用ClickOnce部署SQL和附加DB:?,.net,winforms,sql-server-2005,deployment,clickonce,.net,Winforms,Sql Server 2005,Deployment,Clickonce,我需要部署一个使用多个db的winform应用程序。当它们在本地交互时,我需要用我的应用程序部署它们 我可以使用ClickOnce,还是应该考虑另一种方法?我找到了ClickOnce的几个例子,但它们都假设DB包含在解决方案中,但这里的情况并非如此 这个应用程序曾经是一个网络应用程序,DB和DAL反映了这一点。我还使用合并复制,将这些本地数据库合并到中心数据库 我的最佳方法是编写数据库创建脚本,并在安装期间以某种方式运行这些数据库,然后启动合并复制以填充表吗?DB还包含超过100个存储过程,这些
谢谢 如果您在本地使用SQL Express,则可以将数据库作为连接字符串的一部分进行附加,但我不知道这对复制是否有好处。您可以考虑将数据库附加到本地,并将包含数据库的版本号的修订表放入其中。然后可以编写应用程序来检查数据库的版本,并运行SQL脚本将数据库升级到最新版本。这就是DotNetNuke执行滚动升级的方式。您只需为每个版本维护一个特定于版本的.SQL文件,并将其包含在click once部署文件中。通过这种方式,您可以向前滚动任何遗漏的修订,以获得数据库的最终修订
在psuedo代码中,它类似于:
Check the database version in Revision Table
If less than current version
Load SQL file list from path
Foreach file with revision > current Revision
Execute TSQL Scripts
每个TSQL脚本将在应用时更新数据库中的修订号。诚然,这需要花费大量的时间来实施,但在实施过程中,它能很好地解决您的问题。我不确定我是否完全理解。我的印象是merge rep将发布任何db更改。你指的是其他东西吗?如果你这样设置,你当然可以这样做,但你提到你想安装,然后启动复制来填充表,而不是完全复制所有对象,通过使用数据库和sql文件的增量版本控制来部署不同版本的更改,可以解决存储过程中的问题。这不一定是你的正确解决方案,而是你如何“能够”解决问题的想法。