Installation 如何修改Inno安装程序的嵌入式清单?

Installation 如何修改Inno安装程序的嵌入式清单?,installation,manifest,inno-setup,administrator,Installation,Manifest,Inno Setup,Administrator,我有一个Inno安装程序,它在我的机器上运行良好(win7 32位),但在测试机器上根本不工作(也是win7 32位)。经过一些调查,我发现原因是当UAC设置为任何不的值时,出现了一些问题。请不要通知我。但是,如果我右键单击安装程序,并选择以管理员身份运行,安装程序工作正常 然后,我尝试修改安装程序的嵌入式清单(下面描述的方法),使其始终以管理员的身份运行,但这并不是我所希望的。我已使用命令获取原始清单 mt.exe -inputresource:installer.exe -out:insta

我有一个Inno安装程序,它在我的机器上运行良好(win7 32位),但在测试机器上根本不工作(也是win7 32位)。经过一些调查,我发现原因是当UAC设置为任何不的值时,出现了一些问题。请不要通知我。但是,如果我右键单击安装程序,并选择以管理员身份运行,安装程序工作正常

然后,我尝试修改安装程序的嵌入式清单(下面描述的方法),使其始终以管理员的身份运行,但这并不是我所希望的。我已使用命令获取原始清单

mt.exe -inputresource:installer.exe -out:installer.exe.manifest
mt.exe -manifest installer.exe.manifest -updateresource:installer.exe;#1
一、 然后,使用文本编辑器打开提取的清单并更改行

<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
但是清单工具给了我错误

mt.exe:清单编写错误c1010001:不同清单代码段中属性“级别”的值不相等

我还尝试将命令更改为

mt.exe -manifest installer.exe.manifest -outputresource:installer.exe;#1
但这导致整个安装程序被资源覆盖(即实际安装程序丢失)

我还尝试使用Visual Studio(资源编辑器)打开安装程序的可执行文件,修改清单并保存文件,但这与我使用的第二个mt.exe命令的结果相同


有人知道我做错了什么,或者我遗漏了什么吗?

您不应该修改生成的Inno设置的清单,因为Inno执行指令所需的任何提升

如果您确实修改清单,或者手动执行“以管理员身份运行”,那么它将破坏所有的
…AsOriginalUser
功能,最重要的是,会破坏


mt.exe
和类似的资源编辑器也很可能从安装文件中删除附加到二进制文件末尾的安装数据。

如果您执行“以管理员身份运行”或更改清单,则会破坏Inno的一些功能。Inno(应该)提升自身,并依赖于不提升初始EXE的运行。如果你解释一下你在设置上的实际问题,我可以保证有更好的解决方案。请注意:这个问题也是在上问的,并提供了关于实际问题的信息。@Deanna,说得好!答案可能就在那里——使用最新版本的InnoSetup,因为我个人没有注意到,当我没有明确指定
管理
之外的
权限时,不会询问管理员提升。@Deanna-以管理员身份运行并没有破坏任何东西,或者至少这个特定的安装程序不需要任何东西。提升安装程序时,安装程序失败。我看到一个对话框,上面说
以下命令行参数无效:
/spawwnd=$1A0292
此外,我使用的是最新版本的Inno Setup(5.5.0)。它将根据我的asnwer中断所有
…原始用户
安装后
功能。至于Inno问题,它指向了一个腐败的设置,但新闻组上的问题应该得到答案。
mt.exe -manifest installer.exe.manifest -outputresource:installer.exe;#1