저는 윈도우 설치 프로젝트를 만들고 기본 응용 프로그램에 몇 가지 사용자 지정 설치기 클래스를 추가하여 설치 프로젝트의 사용자 지정 동작 섹션에 포함 시켰습니다. 제 3 자 설치 프로그램을 일반 Visual Studio 설치 프로젝트로 사용하지 마십시오.상승 된 권한을 가진 MSI 제거 프로그램 실행
내 응용 프로그램 용 사용자 지정 설치 관리자 클래스가 있으며 제거 기능에는 프로세스를 종료하고 프로그램 디렉터리에 생성 된 추가 파일을 제거하는 기능이 포함되어 있습니다. 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);
}
MSI를 생성하는지 또는 제품을 제거하는 사용자 지정 응용 프로그램이 있는지 여부는 분명하지 않습니다. –
나는 MSI를 생산함으로써 무엇을 의미하는지 확신 할 수 없다. 사용자 지정 작업의 일부로 MSI 설치 관리자 프로젝트에 추가되는 기본 응용 프로그램에 대한 Installer 클래스를 만들었습니다. 붙여 넣은 코드는 제거 무시 기능의 일부입니다. – ArmenB