修改InstallShield X的EXE清单(版本10.5)

InstallScript Project InstallShield X (版本10.5)创build的InstallScript Project

当我使用以下清单从Windows SDK v7.1A运行mt.exe

MySetup.exe.manifest

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level='requireAdministrator' uiAccess='false' /> </requestedPrivileges> </security> </trustInfo> </assembly> 

使用以下命令:

 # wrong file! MySetup.exe will be truncated! mt.exe -manifest MySetup.exe.manifest -updateresource:MySetup.exe;#1 

安装程序( MySetup.exe )从MySetup.exe MB MySetup.exe KB。 如何正确地将Admin Privilege Elevation清单embedded到由InstallShield X生成的安装程序中?

InstallShield有一个可下载的工具,用于修改构建的setup.exe或update.exe的清单。 在这一点上,我不记得InstallShield的输出版本。 它将删除数字签名,因为它会修改.exe文件的内容。

http://support.installshield.com/kb/view.asp?articleid=Q113245

(作为一个免责声明,我支付工作的产品,我仍然建议使用一个版本的InstallShield,它提供了选择清单的选项,我相信这是InstallShield 12 MSI SETUP.EXE,以及一些后来,如InstallShield 2010或InstallShield 2011 for InstallScript setup.exe和MSI update.exe文件。)

使用mt.exe工具更新以下文件的清单(首先进行备份)

 C:\Program Files\InstallShield 10.5\Redist\Package Stub\Setup.exe C:\Program Files\InstallShield 10.5\Redist\Uncompressed Files\Language Independent\Intel 32\setup.exe C:\Program Files\InstallShield 10.5\Support\Dialog Sampler\Media\Default\Disk Images\Disk1\setup.exe C:\Program Files\InstallShield 10.5\Support\Dialog Sampler\Media\Skin\Disk Images\Disk1\setup.exe 

使用与问题中相同的命令

 mt.exe -manifest Setup.exe.manifest -updateresource:Setup.exe;#1 

然后重建安装程序

如果这不起作用,那么正如Michael Urman在他的评论中指出的那样,您需要更新其他存根的清单。 我查找存根的方式是使用Notepad++在InstallShield安装文件夹中递归搜索字符串6595b64144ccf1df 。 这个值是我在最终安装程序清单中找到的publicKeyToken

您可以使用任何资源编辑器(如XNResourceEditormt.exe来提取清单,并在InstallShield安装文件夹下搜索包含类似清单的文件。