【问题标题】:WiX: Database uninstallWiX:数据库卸载
【发布时间】:2015-06-19 02:45:10
【问题描述】:

我已经完成了一个 WiX 3.9 项目,但有一个小问题...

它能够: -- 跳过 EULA -- 向用户询问数据库字符串 -- 将其保存在 RegKey 中 -- 在 inetpub\wwwroot 文件夹中安装文件(由客户端定义) -- 创建一个 AppPool -- 创建一个 IIS -- 创建数据库 -- 运行脚本来删除数据库,如果它已经存在 -- 运行一个脚本来创建整个数据库(表和内容,必要的用户)

但是,在卸载过程中,所有内容都会被删除,但数据库不会丢失。

我通过在创建数据库之前运行脚本来测试删除数据库的脚本。有用。我无法让它在卸载时运行。

这是我的 wix sql:SqlDatabase 标记:

    <!-- - - - - DB/SQL Script - - - - -->
    <sql:SqlDatabase Id="CreateBingoServer" Server="[SERVERNAME]" Database="BingoServer" CreateOnInstall="yes" DropOnUninstall="yes" ContinueOnError="no" >

      <!-- Pre-Drop on Create -->
      <sql:SqlScript Id="PreDrop" BinaryKey="Drop" ExecuteOnInstall="yes" Sequence="1" ContinueOnError="yes" />
      <!-- Create on Install -->
      <sql:SqlScript Id="Script" BinaryKey="Database" ExecuteOnInstall="yes" Sequence="2" ContinueOnError="no" />
      <!-- Drop on Uninstall -->
      <sql:SqlScript Id="Drop" BinaryKey="Drop" ExecuteOnUninstall="yes" Sequence="1" ContinueOnError="no" />
      <!-- -->

    </sql:SqlDatabase>

对于 Drop,我尝试了“ExecuteOnUninstall”和“RollbackOnUninstall”。

我也试过了:

      <sql:SqlScript Id="Drop" BinaryKey="Drop" ExecuteOnUninstall="yes" Sequence="1" ContinueOnError="no" SqlDb="CreateBingoServer" />

(在 sql:SqlDatabase 标记之外)并且不运行。我已将“序列”从 1 更改为 9;没有变化。

详细日志显示未找到数据库,但 SERVERNAME = "来自 RegKey/安装程序输入的正确字符串"

MSI (s) (8C:8C) [11:51:49:620]: APPCOMPAT: 正在寻找带有 ProductCode '{Some random GUID}' 的 appcompat 数据库条目。

MSI (s) (8C:8C) [11:51:49:620]:APPCOMPAT:在数据库中找不到匹配的 ProductCode。

...

MSI (s) (8C:8C) [11:51:49:888]:组件:数据库;安装:本地;请求:缺席;行动:空

有什么想法吗?

提前谢谢你。

【问题讨论】:

    标签: database iis wix uninstallation


    【解决方案1】:

    FWIW,我不建议在卸载期间运行 SQL 脚本。没有什么比不能卸载某些东西更糟糕的了,因为某些 SQL 依赖项引发了错误。再说了,是用户数据……别说了。

    我也不喜欢 IF EXIST DROP THEN CREATE 模式,因为您可能会丢失用户数据。

    【讨论】:

    • CREATE 之前的 DROP 实际上只是为了测试脚本以确保其正常工作。在最终产品中,我将其取出(我现在将其保留“只是因为”,真的)。
    • 我应该补充一下,有几个例外。一种是静态数据,用户不希望更改,例如代码查找表。另一个是演示产品,其中所需的功能要求是每次安装/修复/升级产品时都应重置数据。 IE 不是生产系统。
    猜你喜欢
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 2013-01-09
    • 2013-03-20
    相关资源
    最近更新 更多