我有一个通过ClickOnce部署的Winforms应用程序,该应用程序具有SQL Server 2005 Express的先决条件。我想将其更改为SQL Server 2008 R2 Express。
我正在查看SQL Server 2008 R2 Express的package.xml
并注意到这些行:
<!-- Defines an upgrade installation (x86) -->
-<Command Arguments="/q /hideconsole /action=Upgrade /instancename=SQLEXPRESS
/IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck"
PackageFile="SQLEXPR32_x86_ENU.EXE"
EstimatedInstallSeconds="420" EstimatedInstalledBytes="225000000">
此 SEEMS 暗示可以升级。但是,在尝试此操作时,它失败了,并提示我卸载现有的SQLEXPRESS
实例。
有人知道这是否可行?也许,我做错了什么?我是否只需要额外的'英里'并编写现有SQL实例的卸载代码?有没有人处理类似的事情?
P.S。这属于Database Administrators(https://dba.stackexchange.com/)吗?鉴于我的问题的ClickOnce上下文,我不确定。
答案 0 :(得分:1)
前一段时间我不得不做同样的事情。我所做的就是为您描述和编写SQLExpress的卸载代码。
但我在应用程序的启动模块中执行了此操作,检查了已安装的版本,运行其卸载,然后再次检查(如果用户取消),然后重新启动应用程序。
Clickonce会看到缺少必需的必备条件和offed来安装..
很长时间啰嗦,但确实有效。
我已经改为使用SQL Everywhere(SQL Compact用来调用),它只是一个DLL,因此可以使用应用程序自己的代码进行升级而不会出现这种混乱。我们的本地数据库很小(它的缓存)来自Web服务的数据)。这可能不是很大或很强大f