我有一个在用户运行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上可用的解决方案,但该解决方案无法正常工作,因此我需要提出一个新问题。所以,请让我知道我在哪里。我敢肯定,我可能会在这里失踪