我使用WiX 3.8创建了一个MSI-Package,它包含一个名为“INSTALLLOCATION”的安装文件夹的属性。 通常,MSI包由Bootstrapper-Bundle调用,后者设置属性。 在MSI中,属性定义如下:
<Property Id="INSTALLLOCATION"
Value="ProgramFilesFolder"
Hidden="no"/>
如您所见,ProgramFilesFolder是默认值。 现在我们想要 - 与Bootstrapper并行 - 有可能通过命令行安装MSI包。 所以我发送以下命令:
msiexec /i Setup.msi INSTALLLOCATION=C:\MyApplication
MSI将安装在正确的位置。 到目前为止,非常好。
但是当我尝试通过ControlPanel / Programs或命令行卸载它时,它不起作用,因为默认值为“ProgramFilesFolder”。 即使我尝试以下命令:
msiexec /u Setup.msi INSTALLLOCATION=C:\MyApplication
我能做什么,卸载有效?
答案 0 :(得分:0)
这是我的错! RemoveFolder条目错误。 当您使用像这样的目录层次结构时
<Directory Id="TARGETDIR"
Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLLOCATION"
Name="InstallLocation">
<Directory Id="CompanyFolder"
Name="MyCompany">
<Directory Id="INSTALLDIR"
Name="MyApp" />
</Directory>
</Directory>
</Directory>
必须是:
<RemoveFolder Id="INSTALLDIR"
On="uninstall"/>
就是这样。