我的C#应用程序安装程序,在运行实用程序时没有创建其他文件/日志时,安装和卸载工作正常。
但是生成日志时,卸载不会删除目录和日志。 我尝试使用RemoveFolderEx元素(Util Extension),但我没有输出文件夹的组件ID,在运行时创建日志时保存日志。
如何删除输出文件夹,以便在不离开文件和文件夹的情况下清除卸载
答案 0 :(得分:0)
这有点匆忙。我会检查一下你是否有意义。
如果您知道相关文件的名称,您应该能够使用MSI中的标准和内置RemoveFile feature来删除日志文件。然后,您可以向安装程序添加 CreateFolder 条目,该条目会创建相关的日志记录目录,然后在RemoveFile条目中使用该目录属性:
<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中的某个地方,甚至临时文件夹(并让它通过最终用户所拥有的任何机制进行清理)。
如果可能,我还会考虑记录到系统的事件日志而不是文件。