安装程序自定义操作无效

时间:2014-07-08 18:56:56

标签: c# windows-installer

我正在尝试在卸载应用程序后删除用户配置文件Local Application Data文件夹下的一些其他文件。

我读到了自定义动作,所以我写了这个

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

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
        // Very important! Removes all those nasty temp files.
        DeleteUserDataProfile();

        base.Dispose(); 
    }

    void DeleteUserDataProfile()
    {
        try
        {
            string path = Path.GetFullPath(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "..\\MyCompanyFolder"));

            if (Directory.Exists(path))
            {
                Directory.Delete(path,true);
            }
        }
        catch (Exception)
        {              
            throw;
        }
    }

}

}

我将dll文件添加到项目设置中,然后添加了自定义操作,然后在卸载下,我添加了RemoveUserAppDataCA的ddl文件。我建立了系统。

我做了安装,但是当我卸载应用程序时,应用程序用户配置文件本地应用程序数据仍然存在(不会被删除)。

这项工作有什么问题?

1 个答案:

答案 0 :(得分:0)

我发现问题,文件夹路径错误。系统指着  “C:\ Users \ UserName \ AppData \ App_Folder”而不是“C:\ Users \ UserName \ AppData \ Local \ App_Folder”