【发布时间】:2015-12-27 06:33:25
【问题描述】:
我不希望在自动卸载发生时执行 SQL 脚本,因为重大升级会删除现有产品。
问题是我将数据库用户名和密码作为命令行参数传递,所以当它进行升级并自动运行卸载时,它会尝试执行 SQL 脚本,但没有数据库用户名或密码,所以升级然后失败。您可以在 SQL Profiler 中看到用户名设置为 ''(空白)。
我的组件代码如下:
<Component Id="SQL" Guid="AF267662-23A0-4b46-B490-C11465BE9858" KeyPath="yes" >
<Condition>NOT UPGRADINGPRODUCTCODE AND NOT REMOVE="ALL"</Condition>
<!--UNINSTALL-->
<sql:SqlScript Id="Uninstall.SQLScript" ExecuteOnInstall="no" ExecuteOnUninstall="yes" BinaryKey="SQLScript.Uninstall" User="SQLUser" SqlDb="SqlDatabase" Sequence="1"/>
<!--INSTALL-->
<sql:SqlScript Id="SQLScript2" ExecuteOnInstall="yes" ExecuteOnUninstall="no" BinaryKey="SQLScript.Create.DBObjects" User="SQLUser" SqlDb="SqlDatabase" Sequence="3"/>
</Component>
【问题讨论】:
标签: wix windows-installer