我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
。
您可以使用任何资源编辑器(如XNResourceEditor
或mt.exe
来提取清单,并在InstallShield安装文件夹下搜索包含类似清单的文件。