Wix工具集多实例安装

时间:2016-06-13 10:27:08

标签: installation wix windows-installer installer msiexec

几个月前,我发布了question关于多次安装的信息,我严格按照example建议的方式进行了操作。 它工作得非常好,但我尝试删除默认实例。 当我输入

   msiexec /x MyInstaller.msi

我的应用程序被“逻辑”删除,但没有文件夹,没有文件被删除在我的机器上!

以下是代码:

 <Directory Id="TARGETDIR" Name="SourceDir">
  <Component Id="comp_67F76B3C_8D92_4DCF_8C51_42E51502C4A3" Guid="28C71156-F612-49ED-A4E9-0CB598AA84AB" MultiInstance="yes">
    <CreateFolder/>
  </Component>
  <Component Id="comp_AA102B27_0657_498D_9CD5_683C4F33B5E2" Guid="0F601C97-CDFF-4614-A608-B42253240E2C">
    <File Id="_C72F9A1F_AF4A_47A3_928C_238643ABA5D4" Name="CrashReportManager.exe" Source="..\workspace\Release\CrashReportManager.exe" KeyPath="yes" />
  </Component>
  <Component Id="comp_442142FD_D0B8_410C_8904_E73047757FAB" Guid="0A1AE820-0FF7-442C-8333-9FEFA2E3F33C">
    <File Id="_CA463C5C_E397_40E6_9B7B_28CCA647D0CA" Name="BCGCBPRO2440d120.dll" Source="..\workspace\Debug\BCGCBPRO2440d120.dll" KeyPath="yes" />
  </Component>
  <Directory Id="dir_350BD3EA_2F6C_4AD4_A960_8AB2C40F4F36" Name="Docs">
    <Component Id="DocFolderId" Guid="32DAE480-7C01-4BAA-B99D-9FE8D7D43369" MultiInstance="yes">         
      <CreateFolder />
    </Component>
    <Component Id="comp_FFFDE3FE_1205_4E74_82B1_E832501A096C" Guid="EECC223C-EBAD-43CA-9F3C-4A19FD9E7429">
      <File Id="_D0FE1868_D0D7_4778_8BC6_D40FE2B21DB2" Name="ModuleList(1).txt" Source="..\ModuleList(1).txt" KeyPath="yes" />
    </Component>
    <Component Id="comp_07E32598_CA8D_46B6_A3D6_DA36FD308E1F" Guid="FCCC41AA-17BC-4ADA-925D-631A614C9F80">
      <File Id="_894CFDFB_4514_4CAC_86C3_426CC6836B7C" Name="ModuleList(2).txt" Source="..\ModuleList(2).txt" KeyPath="yes" />
    </Component>
    <Component Id="comp_21465088_A65C_43D4_A038_93412404BA91" Guid="67D18D29-6466-4D36-A279-A9396A62019C">
      <File Id="_C9362477_88D8_463C_B77D_7097255F5E13" Name="ModuleList.txt" Source="..\ModuleList.txt" KeyPath="yes" />
    </Component>
    <Component Id="comp_3C85BB37_5715_45E7_A135_C640D7348360" Guid="6DDB0F88-7346-4221-8FB1-106C5F707EE5">
      <File Id="_BFE55263_BD18_427B_9F87_30403BB2540D" Name="ReadMe.txt" Source="..\ReadMe.txt" KeyPath="yes" />
    </Component>
  </Directory>
</Directory>

怎么了?

2 个答案:

答案 0 :(得分:1)

您在所有组件中使用了KeyPath="yes"。这意味着,此类组件将用作Windows安装程序的检查点,例如,如果要修复安装。这意味着应用程序运行所需的强制组件

由于您使用的是多个实例,并且您提到安装的不仅仅是默认实例,因此Windows安装程序在卸载最后一个实例之前不会删除关键组件(即使用参考计数器在内部跟踪它们。

答案 1 :(得分:0)

对每个组件使用MultiInstance="yes",并且像Yan说的那样,摆脱<CreateFolder/>组件