我编写了Wix安装程序,它将 PyTangoArchiving-7.3.2.win-amd64.exe 文件包装到 PyTangoArchivingInstaller.msi 包中。 我认为安装过程是正确的,在控制面板中 - >程序我可以看到安装了两个附加程序: PyTangoArchiving-7.3.2.win-amd64.exe - 我想安装的程序和 我的包装器 - PyTangoArchivingInstaller。
但是当我尝试卸载应用程序时,只卸载了包装器并且整个程序(PyTangoArchiving-7.3.2.win-amd64.exe)仍然存在,我必须从控制面板手动卸载它。 某事可以帮助我吗?
这是我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="PyTangoArchivingInstaller" Language="1033" Version="1.0.0.0" Manufacturer="test" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<WixVariable Id="WixUILicenseRtf" Value="$(var.ProjectDir)\License.rtf"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes"/>
<UIRef Id="WixUI_InstallDir"/>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id='TempFolder'>
<Directory Id="INSTALLLOCATION" Name="MyApp" >
<Component Id='MyComponent' Guid='*'>
<File Id="mysetup_exe" Source="PyTangoArchiving-7.3.2.win-amd64.exe" />
</Component>
</Directory>
</Directory>
</Directory>
<Feature Id="MainApplication" Title="Main Application" Level="1">
<ComponentRef Id="MyComponent" />
</Feature>
<CustomAction Id="run_setup" FileKey="mysetup_exe" ExeCommand="/SP- /SILENT /SUPPRESSMSGBOXES /LANG=English
/NOCANCEL /DIR="[INSTALLLOCATION]""
Execute="deferred" Impersonate="no"
Return="check" />
<InstallExecuteSequence>
<Custom Action="run_setup" Sequence='5401'>NOT Installed</Custom>
</InstallExecuteSequence>
</Product>
</Wix>
答案 0 :(得分:1)
作为一般性评论,您通常不应该在MSI中运行另一个exe,特别是如果它是在添加/删除程序中显示的安装。您应该使用引导程序将多个安装链接在一起,这是您尝试执行此操作的首选方法。
<小时/>
由于您从自定义操作运行setup_exe,因此还需要相应的自定义操作才能将其卸载。
它基本上与您用来安装的格式相同,除了卸载命令行参数,无论它们是什么。
您需要在&#34; RemoveFiles&#34;之前安排卸载自定义操作。标准操作,以便在您尝试运行自定义操作时仍然存在安装程序exe。您还应该使用REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE
来调整此自定义操作。
当您尝试使用/不升级打包的exe安装来支持升级时,此方法会遇到问题。强烈建议您使用wix burn bootstrapper(学习曲线的位)或其他可用的bootstrappers进行多次安装。这些将更加强大和正确地支持两个安装以及升级和卸载。