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

时间:2014-03-13 05:12:08

标签: windows manifest installshield

我使用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生成的安装程序中?

2 个答案:

答案 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 Urmancomment指出的那样,您需要更新其他存根的清单。我查找存根的方法是使用InstallShield安装文件夹中的6595b64144ccf1df递归搜索字符串Notepad++。这个值是我在最终安装程序清单中找到的publicKeyToken

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