Я создал проект установки окна и добавил несколько пользовательских классов установщика в основные приложения, чтобы включить его в раздел «Настраиваемые действия» проекта установки.Я не использую какую-либо стороннюю программу установки, просто простой проект установки Visual Studio.
У меня есть собственный класс установщика для моего приложения, и в функцию удаления я включил функцию, чтобы убить процесс и удалить дополнительные файлысозданный в каталоге программы.Это работает в Windows XP, но не в 7. Так что я предполагаю, что это связано с UAC.Как я могу принудительно запустить деинсталлятор с правами администратора?
вот мой мой код для переопределения деинсталлятора:
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
try
{
KillProcess();
DeleteAppPathFolder();
}
catch (Exception) { }
}
private void KillProcess()
{
for (; ; )
{
Process[] procMain = Process.GetProcessesByName("TaskbarNotificator");
if (procMain.Length > 0)
{
procMain[0].Kill();
}
else
break;
}
}
private void DeleteAppPathFolder()
{
FileInfo fileInfo = new FileInfo
(System.Reflection.Assembly.GetExecutingAssembly().Location);
string sProgram = Path.Combine(fileInfo.DirectoryName, GLOBALS.APP_DIR_NAME);
if (Directory.Exists(sProgram))
Directory.Delete(sProgram, true);
}