C#WIX卸载永久文件?

C#WIX卸载永久文件?,c#,installation,wix,C#,Installation,Wix,我在安装期间使用自定义操作将文本文件写入我的安装目录。卸载时,该文件不会被删除,相应的安装目录也不会被删除。但是,其他所有内容都已正确卸载 我理解WIX无法使用卸载程序卸载此文件的原因,我只是想知道在卸载时调用“清理”操作的最佳方式是什么,在该操作中我可以手动删除目录/文件?您可以始终运行控制台应用程序,例如,通过代码删除文件。您只需将该项目添加到卸载自定义操作。您可以安装一个空文本文件,然后让自定义操作写入该文件,而不是创建它 一般来说,我建议尽可能远离自定义操作(在处理安装、卸载、修补、修复

我在安装期间使用自定义操作将文本文件写入我的安装目录。卸载时,该文件不会被删除,相应的安装目录也不会被删除。但是,其他所有内容都已正确卸载


我理解WIX无法使用卸载程序卸载此文件的原因,我只是想知道在卸载时调用“清理”操作的最佳方式是什么,在该操作中我可以手动删除目录/文件?

您可以始终运行控制台应用程序,例如,通过代码删除文件。您只需将该项目添加到卸载自定义操作。

您可以安装一个空文本文件,然后让自定义操作写入该文件,而不是创建它


一般来说,我建议尽可能远离自定义操作(在处理安装、卸载、修补、修复等操作时,它们可能会变得非常混乱)您可能想考虑让应用程序自己在第一次运行时配置文件,或者在第一次运行时有一个额外的配置应用程序。在文本文件是安装日志的类似情况下,我建议将日志记录到临时目录或不在程序文件下的位置(例如windows 7上的Program/AppData文件夹-C:\ProgramData\Manufacturer\)

此方法完全绕过了此问题,无需创建自定义清理脚本或操作。

您可以在与文本文件最密切相关的任何组件中包含元素。卸载该组件时,文本文件也将被删除

<RemoveFile Id="CleanUpLogFile" On="uninstall" Name="log.txt"/>