visual studio安装程序不会删除卸载中的所有文件

时间:2013-01-08 13:46:23

标签: visual-studio installer

我正在使用visual studio安装程序。 但是在卸载时 - 从添加删除程序它不会删除所有文件但是文件夹中包含一些文件,我怎样才能导致卸载删除所有文件?

2 个答案:

答案 0 :(得分:0)

安装程序仅删除它安装的文件。不会删除创建后安装的文件。您必须创建自定义操作才能执行清理。

答案 1 :(得分:0)

要清理软件后(删除一些自定义或用户生成的文件),您应该创建自定义操作并将其添加到安装程序的卸载部分。

自定义操作可以是继承自System.Configuration.Install.Installer类的类库。

以下是卸载程序自定义操作的示例实现:

[RunInstaller(true)]
public partial class CustomUninstaller : System.Configuration.Install.Installer
{
    public CustomUninstaller()
    {
        InitializeComponent();
    }

    public override void Uninstall(IDictionary savedState)
    {
        if (savedState != null)
        {
            base.Uninstall(savedState);
        }

        string targetDir = @"C:\Your\Installation\Path";
        string tempDir = Path.Combine(targetDir, "temp");

        try
        {
            // delete temp files (you can as well delete all files: "*.*")
            foreach (FileInfo f in new DirectoryInfo(targetDir).GetFiles("*.tmp"))
            {
                f.Delete();
            }

            // delete entire temp folder
            if (Directory.Exists(tempDir))
            {
                Directory.Delete(tempDir, true);
            }
        }
        catch (Exception ex)
        {
            // TODO: Handle exceptions here
        }
    }
}