WiX捆绑包无法以管理员身份运行exe

时间:2016-09-23 10:26:42

标签: c# wpf permissions wix

我正在尝试强制由WiX捆绑包触发的WPF exe作为管理员运行,因为它需要能够重新启动服务。在有人问为什么这是在一个单独的exe中运行之前,遗憾的是我没有时间学习如何构建自定义引导程序。

到目前为止,我已尝试使用此行向app添加app.manifest文件:

        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

当它没有工作时,我查看了捆绑包中的exepackage以检查它是否配置为以管理员身份运行(PerMachine应该以提升的方式运行它):

      <ExePackage Id="MMAConfigure" 
              DisplayName="Configuring Microsoft Monitoring Agent" 
              Compressed="yes" 
              PerMachine="yes" 
              Vital="yes" 
              SourceFile="$(var.PowerOnHybridWorkerConfigure.TargetDir)PowerOnHybridWorkerConfigure.exe" 
              DetectCondition="HybridWorkerConfigured" 
              UninstallCommand="Uninstall" />

最后这是重启服务的代码,如果我在带有管理员权限的捆绑包之外运行WPF exe,那么它每次都有效:

        public async Task<string> StartService(string serviceName, int timeoutMilliseconds)
    {
        ServiceController service = new ServiceController(serviceName);
        try
        {
            TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

            service.Start();
            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
            return "Success";
        }
        catch (Exception e)
        {
            return e.Message;
        }
    }

0 个答案:

没有答案