MSI卸载不删除所有文件夹

时间:2011-01-31 08:49:50

标签: c# installer windows-installer logging uninstall

在卸载时,安装程​​序会删除已安装的文件夹及其所有子目录。但是,我们希望保留一些有关卸载的日志文件。如何使安装程序不删除已安装的文件夹?

2 个答案:

答案 0 :(得分:6)

我的建议是将日志文件存储在%APPDATA%的文件夹下,是在应用程序需要时创建的,而不是安装程序。由于安装程序不会创建该文件夹,这将解决安装程序删除它的问题。

还值得一提的是,如果安装程序正在为您的应用程序在%PROGRAMFILES%下创建一个文件夹并且您将日志文件保留在那里,您做错了,因为它不是存储日志数据的正确位置,因为:

  • %PROGRAMFILES%对标准用户不可写
  • %APPDATA%是存储日志之类的“正确”位置(名称全部都在这里!=)

答案 1 :(得分:0)

此时您是否已将文件写入该文件夹,或者只是假设该目录将被删除,因为您今天看到该目录已被删除(其中没有新文件)。根据我的经验,MSI不会删除非空文件夹。因此MSI将删除自己的文件,但日志文件将在那里,因此它不会删除目录。

我同意@Rob,但这很可能不是编写日志文件的最佳位置。