在管理权限中启动托管引导程序应用程序EXE
问题描述:
我已经在WiX 3.11中创建了一个MBA安装程序。在我的设置界面中,我需要访问注册表并在UI中显示该注册表值。如果我以管理员模式运行安装程序(右键单击 - >“以管理员身份运行”),安装程序将读取注册表项。但如果它不处于管理模式,则会显示错误。 WiX Burn中是否有任何选项可用于在设置双击时在UAC中启动设置?在管理权限中启动托管引导程序应用程序EXE
谢谢
答
不幸的是,没有一种内置的方式来提高MBA的运行。这是WiX维护人员说他们不想做的事情。一般来说,你可以在没有它的情况下进行大部分工作(除了查询IIS设置),并让MSI在安装时提升自己(如果需要的话)。
但是,有些时候您确实需要MBA本身来提升。既然你不能提升一个已经运行的过程中,你通常有两种选择:
- 修改MBA的嵌入式清单文件,以迫使它提高立即
- 已经MBA的过程自旋向上运行的另一个后台进程提升并且有两个过程来回传递。
我已经使用ResourceTuner Console这样的工具来修改清单文件,但是需要警告的是,有时这会导致MBA无法找到它的嵌入式MSI。如果您还在使用您的安装程序使用代码签名,它也会产生重大的痛点,因为修改MBA将使您的签名无效。
你如何阅读注册表?如果是通过代码,打开密钥时可以请求更少的权限吗?通常这不应该需要管理权限。 –
使用C#代码读取注册表值。 – user3309953
然后我会建议确认C#注册表代码在没有提升时工作。 (也许在一个独立的应用程序中进行调试。)使引导程序始终提升应该是最后的手段。 –