清单重复会导致“无法创建进程”

问题描述

|| 我一直在尝试获取与UAC一起使用的更新应用程序,在进行了一些挖掘之后,我需要在应用程序中包含清单。 清单称为“ 0”。为了将其包含在项目中,我创建了一个名为
MyApp.rc
的RC文件。使用预构建命令
brcc32 $(PROJECTNAME).rc -fo$(PROJECTNAME).rec
将其内置到名为
MyApp.rec
的文件中。 然后在我的DPR中
{$R *.REC}
{$R *.RES}

begin
  Application.Initialize;
这使Delphi可以处理诸如版本信息之类的事情。 将应用程序复制到Windows 7时,一切正常。 我今天去调试应用程序,而我的开发环境是Windows XP,我立即得到: 经过更多的挖掘之后,我被指向“ XN资源编辑器”。其中立即显示出以下问题: 这些清单中的第一个(标为1的清单)是
MyApp.manifest
(也许这就是为什么它在Windows 7中可以正常工作?),并且如果删除第二个清单,则可以肯定,该应用程序可以正常运行。奇怪的是,如果我更改RC文件中的数字,数字1也随之变化,但第二个清单仍保持为2。 我认为第二个清单可能与运行时主题有关,但是禁用该清单根本不起作用(我取消选中该复选框,关闭项目选项,打开项目选项,然后选中该复选框)。 那么是什么导致第二个清单出现?以及如何摆脱呢? Delphi版本是2007     

解决方法

如果要使用自己的清单,则必须根据delphi版本按照以下步骤禁用delphi生成的清单。 从项目中删除任何“ any6”组件 在项目中删除对XpMan单元的任何引用 禁用项目->选项->应用程序中存在的选项\“启用运行时主题\”     ,什么版本的Delphi?检查所有项目文件中的uses子句中的“ 7”;这是SoftGems的Mike Lischke的旧主题经理,该主题经理已并入VCL。您也可以查找
XPMan
,这会在Delphi 7中添加清单。也来自迈克。在加入VCL之前,他在网站上将其作为免费操作系统提供。 您还需要执行Project-> Build,而不是之后进行编译(或也更改“运行时主题”设置后),以强制重新编译所有单元并使可执行文件完全编译重新创建。     ,在工作了一段时间之后,我回到了这个项目,并在打开项目之前删除了现有的.res文件。 我认为Delphi将project .res文件缓存在内存中,并且仅在编译/构建时更新它,因为此问题已完全消失。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...