此问题可能与this和this相似,但似乎重复。但事实并非如此!首先 - 我从安装文件中得到此错误,而不是从我分发的程序中得到第二个 - 版本不同,Installshield 2009和10.5中的目录不同。 。
我正在尝试修复由我的设置中的Windows兼容模式导致的错误,该设置是使用Installshield 10.5构建的。到目前为止,我的研究使我得出结论,我需要将[this] [3]添加到我的清单文件中。我看到微软的工具mt.exe可以从dll中提取清单文件,但我没有看到任何可以从可执行文件中提取它的地方。 所以我的问题如下:
有没有办法查看使用Installshield构建的Setup.exe的清单文件?
有没有办法为Installshield中的某个项目配置此清单文件?
[3] Can one edit an InstallShield setup.exe's manifest file?
答案 0 :(得分:0)
据我所知,mt.exe
可以在EXE文件上正常工作; EXE和DLL文件都是Portable Executable (PE)文件,PE文件对清单等资源使用完全相同的结构。 Visual Studio,CFF资源管理器和无数其他工具(包括原始资源API)也可以查看并可能更新清单。
但是对于构建的InstallShield setup.exe,有一个扭曲。 InstallShield使用文件中的区域来存储PE格式中未描述的信息。更新EXE上的资源的工具可能会无意中破坏这些数据,因为它们不希望它存在,也不知道如何检测或调整它。
InstallShield 12左右以后允许您指定清单,它会从它发布的文件中选择清单,您可以在将它们添加到setup.exe之前进行更新。此外,有一个名为ISReMan的工具可以识别额外的信息,并且可以在存在该数据时正确更新清单。
顺便说一下,如果您选择的方法(在这种情况下更新清单)不是正确的解决方案,那么提及您尝试解决的实际问题通常很有帮助。另请注意,InstallShield 10.5已超过10年,对UAC,PCA以及其他Vista和更高版本的技术一无所知;调整清单可能无助于解决与海拔相关的问题。
请注意,我在InstallShield上工作是有报酬的,所以当我推荐像升级这样的东西时,我可能会有偏见。 :)