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"];
我发现在卸载 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"];