delphi - 安装程序如何查看 list ?德尔福

标签 delphi installation manifest

所以,我知道这里有很多关于 list 的问题,但我还没有完全找到我想要的解释。基本上我需要一个 Delphi 应用程序安装程序的 list 。现在我在 list 上看到的大多数指南都说要创建一个 .manifest 文件和一个 .rc 文件,然后在应用程序中添加 {.$R 'file.res' 'file.rc'} 以便它在启动时看到它并放置.exe 旁边的文件。

现在我感到困惑的是,我的 list 是用于安装程序的,从逻辑上讲,我不能将文件放在安装程序旁边,因为将文件放在需要的位置是它的工作。现在,我显然不会向人们发送带有安装程序和其他 2 个随机文件的软件包。所以我只是想弄清楚 list 如何为安装程序工作。谢谢!

最佳答案

通常,您将 list 编译成已编译的资源并将该资源链接到可执行文件中。这样,您可以交付单个可执行文件,并且加载程序在加载该可执行文件时能够找到 list 。

这正是您使用 {$R ...} 时发生的情况。如问题所示。该指令指示编译器将编译后的资源链接到可执行文件。一旦你这样做了,分发 .rc 和 .manifest 文件就没有意义了,因为加载器会忽略它们。加载程序更喜欢使用链接到可执行文件的 list (如果存在)。在任何情况下,加载器都不会对 .rc 文件感兴趣,它只是用于编译资源。

尽管可以将 list 文件作为可执行文件外部的文件包含在内,但这是不可取的。原因是人们很容易复制可执行文件而不是 list ,删除或重命名其中一个文件。因为 list 是独立的,所以它可以以这种方式与可执行文件脱位,然后加载程序找不到它。

因此,将已编译的 list 资源链接到您的可执行文件,就像您已经在做的那样。并且不要分发 .rc 或 .manifest 文件。

关于delphi - 安装程序如何查看 list ?德尔福,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653843/

相关文章:

linux - Mac OSx PKG 预安装脚本问题

java - 如何从项目中删除jar文件?

java - 我在android studio中出错,但我不知道问题出在哪里

multithreading - 如何暂停一个线程?

delphi - DUnitX 不能在 64 位上工作?

Wix RemoveFile 和 RemoveFolder 用于删除剩菜

python - 如何安装ChartDirector?

html - 在 Android 上独立于 Web 中打开推送通知

Json 解析 "Invalid class typecast"问题。 [德尔福XE7]

.NET 远程处理和 Delphi win32