如何在wix install

时间:2017-05-24 15:52:33

标签: wix

我真的很喜欢使用WIX,我构建完整安装的唯一经验是使用INNO,并且WIX已经决定了去MSI的方式

安装包括一堆示例和模板,427个文件,即使使用像HEAT.EXE这样的实用程序也很难枚举

所以我们选择了一个自解压工具。 WIX安装包括此自定义实用程序和压缩的cabinet文件,然后通过自定义操作提取文件和文件夹。

问题是当我们尝试删除压缩文件和提取器实用程序时。在提取完成后,我还没有找到删除它们的方法。 RemoveFile似乎不起作用,删除提取实用程序中的文件会在应用程序的每次运行中触发自我修复机制。

将文件保留在安装中是危险的,它是200MB,如果用户偶然运行自解压实用程序,它将重置所有已安装的示例。

如果它有用,那么负责此操作的WIX代码就是这样:



  <Fragment>
    <ComponentGroup Id="App_Files">
      <Component Id="cmp_Files_Dat" Directory="INSTALLCOMMONFOLDER" Guid="{8BFED6C2-4D4F-48BB-xxxx-C171F624C90B}">
        <File Id="fil_Files_Dat" Source="appfiles\files.dat" />
        <RemoveFile Id="rem_Files_Dat" Name="files.dat" On="install" />
      </Component>
      <Component Id="cmp_UnpackFiles_exe" Directory="INSTALLCOMMONFOLDER" Guid="{5722B5E0-C6E8-4C71-yyyy-61EC0ACA0D72}">
        <File Id="fil_UnpackFiles_exe" Source="appfiles\UnPackFiles.exe"  Checksum="yes" />
        <RemoveFile Id="rem_UnpackFiles_exe" Name="UnPackFiles.exe" On="install" />
      </Component>
    </ComponentGroup>
    <CustomAction Id="action_UnPackFiles" FileKey="fil_UnpackFiles_exe" ExeCommand="[INSTALLCOMMONFOLDER]" Execute="commit" Return="check" Impersonate="no" />
    <InstallExecuteSequence>
      <Custom Action="action_UnPackFiles" After="InstallFiles" > NOT (REMOVE="ALL") </Custom>
    </InstallExecuteSequence>
  </Fragment>
&#13;
&#13;
&#13;

上面代码的最终结果是文件,不会删除它们。

提前致谢

何塞普

0 个答案:

没有答案