c# 自定义操作不删除特定文件

c# custom action is not deleting particular file

我发现在卸载 myproject 安装程序时会删除所有文件,但不会删除一个 conn.cnf 文件。我也希望将其删除。所以我使用了自定义 Actions 安装程序 class.but 它没有删除该文件。

这是我的代码

[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
        public override void Uninstall(IDictionary savedState)
        {try
            {
            base.Uninstall(savedState);
            if (System.IO.File.Exists(Application.StartupPath + "\Conn.cnf"))
                System.IO.File.Delete(Application.StartupPath + "\Conn.cnf");            

            }
        catch (Exception es) { MessageBox.Show(es.Message); }
        }

我已经通过放置一个消息框来测试光标是否在这个块中。这是在卸载时执行的。我还检查了文件名,我是否试图以错误的方式删除文件?帮我。谢谢

这个申请路径比较难找。实际上它不是安装目录的应用程序路径。当您尝试使用 Application.StartupPath 查找应用程序路径时。您可能会得到 C:\System 或类似该目录的目录。因为您的应用程序正在使用 Windows 安装程序从计算机上卸载和安装应用程序,并且 Windows 安装程序安装在系统文件夹中。您应该尝试查找目标目录而不是应用程序或可执行文件路径。

您可以像这样从上下文参数中获取目标目录。

string targetFolder = Context.Parameters["TARGETDIR"];