我正在尝试安装一个名为 JamShellBrowser 的商业组件,但它无法安装。
我已经联系了开发者,但同时我想知道:
- 什么是 vrc 文件?
- 它是如何生产的?
- 可以用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/