我有一个第三方可执行文件,我试图将其包含在InstallShield MSI软件包中,我希望它能够在所有类型的Windows中设置权限,特别是7& Vista将以管理员身份运行。
我没有说清楚Manifest文件的创建或正确的配置语法,但我尝试手动创建一个[appname] .exe.manifest,并尝试<requestedExecutionLevel level=”asInvoker” uiAccess=”false” />
in XML,并没有以管理员身份运行,我想确认那是因为程序没有被编译,以便看到清单文件在同一目录中,或者它只是清单文件没有正确语法的情况。
如果还有其他简单的想法,我很乐意听到它!
干杯。
答案 0 :(得分:1)
清单可以嵌入到可执行文件(这是首选)或外部,放在您描述的文件旁边。如果存在嵌入式清单,则忽略外部清单。对于启动EXE,这全部由Windows执行,不受exe文件中的代码的影响。对于加载DLL,虽然这可能会受到您编写的代码的影响,但它不会改变UAC行为,因为它不是进程边界。
当您在其旁边放置请求asInvoker
的清单时,无法以管理员身份启动的程序意味着您创建了一个有效的清单,这取决于清单不存在时会发生什么。由于您提到了InstallShield,您可以复制模板清单文件,例如其<InstallShield>\Support\setupexe.invoker.manifest
,以确保您的语法正确。
重新阅读您的问题后,我意识到您希望以管理员身份启动它。为此,您需要请求管理权限,因此您应该requireAdministrator
而不是asInvoker
,或者取而代之的是setupexe.admin.manifest
。