Wix工具集RemoveFolderEx元素(Util扩展)

时间:2018-04-13 12:15:02

标签: c# xaml wix windows-installer

我的C#应用​​程序安装程序,在运行实用程序时没有创建其他文件/日志时,安装和卸载工作正常。

但是生成日志时,卸载不会删除目录和日志。 我尝试使用RemoveFolderEx元素(Util Extension),但我没有输出文件夹的组件ID,在运行时创建日志时保存日志。

如何删除输出文件夹,以便在不离开文件和文件夹的情况下清除卸载

1 个答案:

答案 0 :(得分:0)

这有点匆忙。我会检查一下你是否有意义。

如果您知道相关文件的名称,您应该能够使用MSI中的标准和内置RemoveFile feature来删除日志文件。然后,您可以向安装程序添加 CreateFolder 条目,该条目会创建相关的日志记录目录,然后在RemoveFile条目中使用该目录属性:

Sample from github

<Component>
  <File Source="WiX.chm" />
  <Shortcut Id="WixChmShortcut" Directory="ShortcutFolder" Name="WiX Documentation" 
            Icon="WixSetupIcons.ico" IconIndex="0" Advertise="yes" />

  <RemoveFile Id="RemoveWixChw" Name="WiX.chw" On="uninstall" />
</Component>

CreateFolder是一个WiX元素,您插入该元素表示应在安装过程中创建一个空文件夹:

   <Directory Id="Mydir" Name="My Directory">
      <Component Feature="MyFeature" >
        <CreateFolder />
        <File Id="NOTEPAD.EXE" Source="$(var.MyReleasePath)\Main Folder\NOTEPAD.EXE" />
      </Component>
   </Directory>

进一步的想法

  • 我不会登录安装文件夹 - 这个文件夹应该是只读的。

  • 我会在其他地方,也许是UserProfile中的某个地方,甚至临时文件夹(并让它通过最终用户所拥有的任何机制进行清理)。

  • 如果可能,我还会考虑记录到系统的事件日志而不是文件。