2015-12-15 29 views
0

此问题似乎与thisthis类似。但事实并非如此!首先 - 我从安装文件中获取此错误,而不是从我分发的程序中获得第二 - 版本不同,Installshield 2009中的目录与10.5不同。 。如何查看和/或编辑Setup.exe文件的清单

我正试图修复由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

可能重复[可以编辑InstallShield setup.exe的清单文件?](http://stackoverflow.com/questions/2931789/can-one-edit-an-installshield-setup-exes-manifest-文件) –

+0

@MichaelUrman Installshield的版本不同,目录也不相同。 –

+0

在Visual Studio中使用文件>打开>文件。打开RT_MANIFEST节点。不太可读,最容易将其导出到文本文件。不太可能你会用这个清单顺便解决这个问题,安装日志文件应该给出提示出了什么问题。 –

回答

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,所以在我推荐升级时可能会有偏差。 :)

+0

如果是由我决定,我会立即升级。然而,这个决定与我们项目的阶段以及预算有关。 关于这种情况:我发现我可以在注册表中创建一个记录: 'HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Persisted'并禁止该消息。但是'Perisisted'文件夹在Windows 10中不可用。 –

+0

我没有办法知道Persisted如何连接到清单,更不用说是安装还是应用程序。你真正的问题是什么? (在当前的项目中,没有时间升级到10年前的技术,虽然这很常见,但对于显然试图支持Windows 10的产品而言非常不幸。) –

相关问题