自定义卸载不会删除.net应用程序中的文件

时间:2018-11-19 08:27:33

标签: c# visual-studio windows-installer uninstall uninstaller

我有一个在用户运行wpf应用程序时创建的设置文件。 我创建了一个自定义卸载程序,以删除一些与我的应用程序相关的注册表项并删除此设置文件。 但是我的文件没有被删除。 这是代码-

 public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);

        try
        {
            using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
            {

                if (registryKey.GetValue("TeachingManagementTool") != null)
                {
                    registryKey.DeleteValue("TeachingManagementTool", true);
                }                    
            }
            if (File.Exists("Setting.ini"))
                File.Delete("Setting.ini");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Registry Keys  exception " + ex.Message);
        }

   }

我尝试使用Directory.GetCurrentDirectory()来获取文件名并删除它,但是它不起作用。所以我检查了这行代码的工作原理file.Delete(filename)。删除指定的文件。因此,它应该在卸载过程中将文件删除,就像在同一文件夹中一样。

最后,我应该说-我尝试了2-3种不同的方法来访问该文件并在卸载过程中将其删除。但有时它不会消除和抛出错误,有时甚至一点也不例外。

  

该异常与对SysWOW64 \ AdvanceInstaller的访问有关   拒绝

仅供参考-我的应用程序已经有<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

我尝试了StackOverflow上可用的解决方案,但该解决方案无法正常工作,因此我需要提出一个新问题。所以,请让我知道我在哪里。我敢肯定,我可能会在这里失踪

1 个答案:

答案 0 :(得分:0)

高级安装程序 :所以您正在使用高级安装程序?在文件和文件夹视图中,选择有问题的目标文件夹。在右窗格中,右键单击要删除文件所在的文件夹。您看到“ 新文件操作”吗?选择“ 文件删除”并配置选项。

请记住要正确设置选项。特别是“删除”。在“组件卸载”上选择。

File Removal

相关问题