5

我有一个通过 ClickOnce 部署的 Winforms 应用程序,它具有 SQL Server 2005 Express 的先决条件。我想将其更改为 SQL Server 2008 R2 Express。

我正在查看package.xmlfor SQL Server 2008 R2 Express 并注意到以下几行:

<!-- 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">

似乎暗示升级是可能的。但是,尝试此操作时失败,提示我卸载现有SQLEXPRESS实例。

有谁知道这是否可能?也许我做错了什么?我是否只需要加倍努力并编写卸载现有 SQL 实例的代码?有没有人处理过类似的事情?

PS 这是否属于数据库管理员https://dba.stackexchange.com/)?鉴于我的问题的 ClickOnce 上下文,我不确定。

4

1 回答 1

1

不久前我也必须这样做。我所做的就是完全按照您描述和编写 SQLExpress 的卸载代码。

但是我是在应用程序的启动模块中完成的,我检查了已安装的版本,运行它的卸载,然后再次检查(以防用户取消),然后重新启动应用程序。

Clickonce 看到缺少必需的先决条件并开始安装..

很啰嗦,但确实奏效了。

我已经改用 SQL Everywhere(调用 SQL Compact),它只是一个 DLL,因此可以使用应用程序自己的代码进行升级,而不会造成这种混乱。我们的本地数据库很小(它的数据缓存来自一个网络服务)。这可能不够大或不够强大 f

于 2012-07-03T09:58:11.867 回答