MSI卸载后,在SetupComplete期间未设置REMOVE属性

时间:2017-04-20 14:50:23

标签: windows-installer installshield

我正在开发Basic MSI类型的InstallShield项目。最后的SetupComplete对话框中有一个自述文件复选框。我尝试在REMOVE<>"ALL"条件中为复选框和关联标签添加条件Show。它无法阻止在卸载过程中出现自述文件复选框。我将绑定到REMOVE属性的文本框添加到同一个对话框中,卸载后它为空。

  1. 为什么在SetupComplete期间REMOVE属性为空,即使在卸载后也是如此?
  2. 在卸载后阻止自述文件框出现的好方法是什么?

2 个答案:

答案 0 :(得分:0)

  

为什么在SetupComplete期间REMOVE属性为空,即使在卸载后也是如此?

在installvalidate序列之前,

REMOVE=ALL不可用。有关详情,请点击此处:Conditioning Actions to Run During Removal

  

什么是防止自述文件在卸载后出现的好方法?

你的方法是正确的。为您的复选框和相应的文本Show条件设置为NOT Installed(首次安装)。有关不同类型条件的更多信息,请参阅Common MSI Conditions Cheat Sheet

答案 1 :(得分:0)

我从http://www.itninja.com/question/remove-the-setupcompletesuccess-dialog了解到,SetupCompleteSuccess对话框是按自己的顺序进行的,该对话框没有接收到其他序列中可用的许多变量。从那个页面,有人评论说:

  

我相信标准安装期间MSI的执行顺序   看起来像这样:

     

InstallUISequence(LaunchConditions - &gt; ExecuteAction) - &gt;即时   &#34; InstallExecuteSequence&#34; (LauchConditions - &gt; InstallFinalize) - &gt;   延期&#34; InstallExecuteSequence&#34; (InstallInitialize - &gt;   InstallFinalize) - &gt;立即&#34; InstallExecuteSequence&#34;   (InstallFinalize - &gt; End) - &gt; InstallUISequence(ExecuteAction - &gt; End)

     

似乎在&#34; InstallExecuteSequence&#34;期间设置了属性。是   在最后的(post-&#34; ExecuteAction&#34;)部分中没有   &#34; InstallUISequence&#34;

该页面还建议使用_IsMaintenance属性作为REMOVE属性的替代,该属性在该阶段不可用。所以我使用_IsMaintenance <> "Remove"