代码之家  ›  专栏  ›  技术社区  ›  Rob Gray

停止在WIX卸载中显示自定义对话框

  •  2
  • Rob Gray  · 技术社区  · 17 年前

    我有一个wix安装程序项目,它使用自定义对话框请求参数来更新web.config文件,并在安装时运行数据库脚本。一切正常,应用程序安装和运行正确。

    但是,当我卸载软件时,也会显示自定义对话框,它当然不需要(因为我不更新web.config文件)。

    卸载应用程序时,是否可以禁止自定义对话框?

    (我还应该在卸载时删除我安装的SQL过程,但这不属于此问题)。

    2 回复  |  直到 17 年前
        1
  •  2
  •   Stein Åsmul    17 年前

    您的问题的解决方案是将自定义操作条件设置为( not remove=“全部” )这将使操作在新安装和维护安装时运行,但在卸载时不运行。如果不需要在维护安装时运行,但仅在新安装时运行,则可以将条件设置为:( 未安装也未安装(remove=“all” )MSI属性的完整列表和简要说明如下: http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx .

    MSI文件中的顺序和自定义操作逻辑非常复杂。尽可能避免自定义操作是值得的。

    还有更多-所有的MSI文件都内置了对静默安装的支持。这意味着可以跳过整个GUI序列,安装msi文件而不需要用户交互。这是通过SMS/SCCM或其他部署机制进行企业部署的关键功能。在静默模式下运行安装程序时显示自定义对话框违反了此基本MSI功能。您可以通过根据属性适当调整对话框的显示来解决此问题。 尤里维尔 : http://msdn.microsoft.com/en-us/library/aa372096(VS.85).aspx . 为了让事情有趣和混乱,微软在安装过程中定义了4个级别的图形用户界面,从完全安静到各种选项,如进度条等等。有关详细信息,请参见链接。

    我可以在这里添加很多关于MSI序列、条件、自定义操作和类似操作的详细信息,但它不能回答您的问题。请添加任何后续问题。

        2
  •  0
  •   Stein Åsmul    17 年前

    显示自定义操作的创建及其插入InstallExecuteSequence的wix代码段:

    <!--Custom Action Sample Section-->
    <Binary Id='VBScriptCustomAction.vbs' SourceFile='VBScriptCustomAction.vbs'/>
    <CustomAction Id='test' BinaryKey='VBScriptCustomAction.vbs' VBScriptCall='Hello' Return='ignore'/>
    
    <InstallExecuteSequence>
      <Custom Action="test" Sequence='4111'><![CDATA[NOT REMOVE~="ALL"]]></Custom>
    </InstallExecuteSequence>
    <!-- End of Custom Action Sample Section-->
    
    推荐文章