我有一个用户运行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()来获取文件名并将其删除,但它不起作用。所以我检查了这行代码的工作文件.Delete(filename)。它删除指定的文件。所以它应该在卸载期间将文件删除为同一文件夹中的文件。
最后我应该说 - 我尝试了2-3种不同的方式来访问该文件并在卸载过程中将其删除。但它有时并没有发现错误和抛出错误,有时也没有例外。
该异常与访问SysWOW64 \ AdvanceInstaller被拒绝有关
仅供参考 - 我的应用程序已经有<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
。
我尝试过在StackOverflow上可用的解决方案,但它没有工作所以我需要问一个新问题。所以,请让我知道我在哪里。我确信这可能是一个非常小的东西,我可能会在这里失踪