delphi - 什么是 .vrc 文件,它是如何生成的,您可以使用 IDE 将其删除吗?

标签 delphi delphi-xe4

我正在尝试安装一个名为 JamShellBrowser 的商业组件,但它无法安装。

我已经联系了开发者,但同时我想知道:

  1. 什么是 vrc 文件?
  2. 它是如何生产的?
  3. 可以用Delphi XE4 IDE来控制或修改吗?

我检查了 IDE 的帮助,但找不到任何有关 vrc 文件的信息,并且搜索了 Delphi vrc,但没有找到任何对我有帮助的内容。

错误信息是:

Checking project dependencies...

Compiling JamShellDelphiXE4.dproj (Release, Win32)

brcc32 command line for "JamShellDelphiXE4.vrc"

c:\program files (x86)\embarcadero\rad studio\11.0\bin\cgrc.exe -c65001 JamShellDelphiXE4.vrc -foJamShellDelphiXE4.res

[BRCC32 Error] JamShellDelphiXE4.vrc(2): file not found: JamShellDelphiXE2_Icon.ico

Failed

Elapsed time: 00:00:00.1

我在组件文件夹中搜索了 ico 文件,但没有...因此出现该消息,但即使我从 vrc 文件中删除行 MAINICON ICON "JamShellDelphiXE2_Icon.ico" 或甚至删除我尝试安装时自动生成的 vrc 文件。

几个月前我从 Delphi 2010 迁移到 XE4,注意到明显新的 vrc 文件,但我不知道它是什么或如何处理这些文件。

最佳答案

一个.vrc是由 Delphi MSBuild 进程创建的临时文件,用于编译资源文件 (.res),该资源文件将链接到最终的二进制输出中。它被传递到 CodeGear 资源编译器/绑定(bind)器 (cgrc.exe) 并在构建过程后删除。

它不会出现在 .dproj 文件中的任何位置。此行为来自BuildVersionResource目标,从 $(BDS)\Bin\CodeGear.Common.Targets 导入。如果您想更好地了解构建过程,请查看此文件(以及 CodeGear.Delphi.Targets )。

正在删除<Icon_MainIcon>来自 .dproj 的标记还不够,因为 VERSIONINFO 资源还可以强制创建 .vrc 文件(我相信“vrc”代表“版本资源”,尽管它也用于应用程序中的主图标)。

对于包,Delphi 总是将版本信息放在包项目中。对于包项目,“包含版本信息”IDE 选项将被忽略。

所以,如果你(像我一样)

  • 不要依赖 Delphi IDE 来设置应用程序主图标
  • 不要依赖Delphi IDE来设置版本信息资源;和
  • 设法包含您自己的所有资源文件

您可以通过设置SkipResGeneration来完全禁用它的创建。至true在你的 msbuild 调用中。例如:

msbuild.exe myProject /t:Build /p:Config=Release /p:SkipResGeneration=true

但是,这仅适用于基于 MSBuild 的构建。我不知道如何对 Delphi IDE 的构建执行相同的操作。

关于delphi - 什么是 .vrc 文件,它是如何生成的,您可以使用 IDE 将其删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593566/

相关文章:

delphi - 如何使用delphi发送测试页到打印机打印?

delphi - 如何使用 Owner 创建一个 TStringList 后代并自动释放 TStringList?

Delphi重新创建 Canvas

ios - Delphi XE4 iOS 应用程序未通过代码签名验证

Delphi 和 iOS 文件大小

delphi - 比较两个文件的名称(完整路径)的真正快速功能

delphi - 在 Delphi 中将非 ASCII 字符获取到 WebBroker 响应中

delphi - 构建机器是否需要单独的 Delphi XE4 许可证?

regex - Delphi TRegEx 反向引用损坏?

delphi - 如何在泛型类中声明枚举类型的集合类型