我使用InstallScript Project
(版本10.5)
InstallShield X
当我使用以下清单从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
)从~80 MB截断到~110 KB。如何将Admin Privilege Elevation清单正确嵌入到InstallShield X生成的安装程序中?
答案 0 :(得分:3)
InstallShield有一个可下载的工具,它可以修改构建的setup.exe或update.exe的清单。此时我不记得它使用的InstallShield输出的哪个版本。它会在修改.exe文件的内容时删除数字签名。
http://support.installshield.com/kb/view.asp?articleid=Q113245
(作为免责声明,我付钱购买该产品。我仍然建议使用InstallShield版本,它提供选择清单的选项。我相信这是用于MSI setup.exe的InstallShield 12,以及稍后的某些内容,例如InstallShield 2010或InstallShield 2011 for InstallScript setup.exe和MSI update.exe文件。)
答案 1 :(得分:0)
使用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中comment指出的那样,您需要更新其他存根的清单。我查找存根的方法是使用InstallShield安装文件夹中的6595b64144ccf1df
递归搜索字符串Notepad++
。这个值是我在最终安装程序清单中找到的publicKeyToken
。
您可以使用XNResourceEditor
或mt.exe
等任何资源编辑器提取清单,并在InstallShield安装文件夹下搜索包含类似清单的文件。