Wix 删除“;更改“;及;“修理”;添加或删除程序中的按钮
我已经创建了一个Wix安装程序,并将其打包到一个引导程序中 当我执行引导程序时,它会在注册表中创建以下条目: 当我运行引导程序时,它安装良好,当我运行添加/删除程序时,它显示“更改”按钮和“修复”按钮。我的要求是Wix 删除“;更改“;及;“修理”;添加或删除程序中的按钮,wix,Wix,我已经创建了一个Wix安装程序,并将其打包到一个引导程序中 当我执行引导程序时,它会在注册表中创建以下条目: 当我运行引导程序时,它安装良好,当我运行添加/删除程序时,它显示“更改”按钮和“修复”按钮。我的要求是 我希望这两个按钮是一个“更改/修复”,就像在其他应用程序中一样 当我选择此按钮时,我希望我的引导程序(setup.exe)运行,而不是msi 这是我的代码区: <Property Id="EXTUNINSTALL" Value="0"/> <Property I
- 我希望这两个按钮是一个“更改/修复”,就像在其他应用程序中一样
- 当我选择此按钮时,我希望我的引导程序(setup.exe)运行,而不是msi
<Property Id="EXTUNINSTALL" Value="0"/>
<Property Id="UNINSTALLEXE" Value="msiexec.exe"/>
<!-- The Uninstall shortcut target executable & arguments-->
<CustomAction Id="SetUNINSTALLEXE_EXT" Property="UNINSTALLCMD"
Value="[INSTALLEREXEDIR][INSTALLEREXE]"/>
<CustomAction Id="SetUNINSTALLARG_EXT"
Property="UNINSTALLARG"
Value="/MAINTENANCE /SILENT="SGWLRPFCE"
/LANG="[ProductLanguage]""/>
<CustomAction Id="SetSYSTEMARPCOMPONENT"
Property="ARPSYSTEMCOMPONENT"
Value="1"/>
<CustomAction Id="SetUNINSTALLARG"
Property="UNINSTALLARG"
Value="/x [ProductCode]"/>
<CustomAction Id="SetUNINSTALLEXE"
Property="UNINSTALLCMD"
Value="[SystemFolder]msiexec.exe"/>
<CustomAction Id="SetARPINSTALLLOCATION" Property="ARPINSTALLLOCATION"
Value="[MAININSTALLERFOLDER]" />
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
<Custom Action="SetARPINSTALLLOCATION" After="CostFinalize"/>
<Custom Action="SetUNINSTALLEXE_EXT"
After="SetARPINSTALLLOCATION"><![CDATA[EXTUNINSTALL=1]]></Custom>
<Custom Action="SetUNINSTALLARG_EXT"
After="SetUNINSTALLEXE_EXT"><![CDATA[EXTUNINSTALL=1]]></Custom>
<Custom Action="SetSYSTEMARPCOMPONENT"
After="SetUNINSTALLARG_EXT"><![CDATA[EXTUNINSTALL=1]]></Custom>
<Custom Action="SetUNINSTALLARG"
After="SetSYSTEMARPCOMPONENT"><![CDATA[EXTUNINSTALL=0]]></Custom>
<Custom Action="SetUNINSTALLEXE"
After="SetUNINSTALLARG"><![CDATA[EXTUNINSTALL=0]]></Custom>
</InstallExecuteSequence>
以下是NSIS的一些注册表项示例。应该会给你指引正确的方向
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2 "NoModify" 1
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2 "NoRepair" 1
您可以在wix中设置和属性,这将在“添加/删除程序”列表中禁用产品的“更改”和“修复”选项。(这实际上相当于leppie的答案,但最好使用Windows Installer属性,而不是直接入侵注册表。)
根据@Wim Coenen
要禁用删除“添加或删除程序”中的“更改”和“修复”按钮,请设置以下属性
ARPNOREPAIR和arpnodify
这是禁用修复和升级选项的示例代码
问题第一部分的建议: “我希望这两个按钮像在其他应用程序中一样成为一个“更改/修复” 我正在运行Windows 7,唯一接近此选项的是一些应用程序合并了“卸载/更改” 要完成一个按钮(存在于Wix 3.7中)“卸载/更改”而不是单独的“卸载”和“更改”,必须按如下所示调整捆绑标签
<Bundle ...
DisableModify="button">
您好,谢谢您的快速回复。我会试试这个“NoModify”和“NoRepair”。同时,这并没有完成我的核心要求。当我选择删除按钮时,我希望启动程序(setup.exe)代替msiexec运行。如何做到这一点?我能够在安装完成的系统的文件夹“C:\Documents and Settings\All Users\Application Data\Installations\{27161ACE-7BDE-44a2-862D-A8158FCB9201}”中看到setup.exe。tvksHi尝试插入这两个“NoModify”和“NoRepair”。没用。没有变化(关于tvkshi wcoenen,我的要求不仅是在添加/删除程序中禁用修改和修复,而且还要使删除按钮显示为更改/删除。当我单击此按钮时,我希望我的setup.exe能够工作。Thanx用于您的响应。BR.,tvkshi这在技术上是正确的。属性必须设置为除s之外的其他属性。)我真的习惯于在属性表中看到1,而不看到其他文本,这可能是因为InstallShield在使用WiX之前这么多年都是这样编写的。