我需要部署一个使用多个db的winform应用程序。我需要在应用程序本地交互时使用我的应用程序部署它们。
我可以使用ClickOnce,还是应该考虑采用其他方法?我找到了几个ClickOnce的例子,但他们都认为数据库包含在解决方案中,而这不是这里的情况。
这个应用程序曾经是一个webapp,DB和DAL反映了这一点。我也在使用Merge Replication和这些本地数据库到中央数据库。
我是编写数据库的脚本的最佳方法,并在安装过程中以某种方式运行它们,然后启动合并复制以填充表格? DB还包含超过100个sproc,它们并不总是与Merge Repl很好用,因此我需要能够在初始安装中包含这些。
否则,我想我可能会想出如何在安装过程中附加数据库,其中包括sprocs但我不知道该怎么做。
我对所有关于如何使用4个单独的SQL DB部署此应用程序的建议持开放态度。
谢谢!
答案 0 :(得分:2)
如果您在本地使用SQL Express,则可以将数据库作为连接字符串的一部分附加,但我不知道这对于复制有用。您可以考虑在本地附加数据库,并放置一个包含数据库版本号的修订表。然后可以编写您的应用程序以检查数据库的修订版本并运行SQL脚本以将数据库升级到最新版本。这就是DotNetNuke执行滚动升级的方式。您只需为每个版本维护特定于版本的.SQL文件,并将其包含在单击一次部署文件中。通过这种方式,您可以前往任何错过的修订版本以进入数据库的最终修订版。
在伪代码中,它将类似于:
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脚本都会在应用时更新数据库中的版本号。当然,这需要花费大量的时间来实施,但是当它滚动时,它可以很好地解决您的问题。