나는이에 테스트 할 수있는 윈도우 8 설치를 필요는 없지만, (당신이 매니페스트를 사용 할 수 없습니다) 배포 한 번 클릭으로 관리자 권한을 필요로 할 때 나는 비슷한 문제가 발생 .
관리자가 실행 중이거나 실행 중이 아닌 응용 프로그램이 관리자로 실행 중이면 응용 프로그램에서 확인을 수행하도록하여 해결합니다. 관리자가 아닌 경우 관리자로 다시 시작됩니다.
public static bool IsRunningAsAdministrator()
{
var wi = WindowsIdentity.GetCurrent();
var wp = new WindowsPrincipal(wi);
return wp.IsInRole(WindowsBuiltInRole.Administrator);
}
public static void StartAsAdmin(StartupEventArgs e)
{
if (IsRunningAsAdministrator())
return;
// It is not possible to launch a ClickOnce app as administrator directly, so instead we launch the app as administrator in a new process.
var processInfo = new ProcessStartInfo(Assembly.GetEntryAssembly().CodeBase);
// The following properties run the new process as administrator
processInfo.UseShellExecute = true;
processInfo.Verb = "runas";
// Start the new process
Process.Start(processInfo);
// Shut down the current process
Application.Current.Shutdown();
}
업데이트 기계의 많은에 테스트 후 : 여기
내가 사용하는 것이 (약간 수정) 코드입니다 나는이 솔루션을 마주하는 하나의 문제는 안티 바이러스 소프트웨어는 종종 볼 수 있다는 것입니다 이것은 의심스러운 행동으로 시작을 차단합니다.
설치 프로그램 + 자동 업데이트를 한 번 클릭에서 WiX Toolset + NAppUpdate으로 변경하고 대신 requestedExecutionLevel="requireAdministrator"
을 실행했습니다.