Delphi 什么是.vrc文件,它是如何生成的,您可以使用IDE删除它吗?
我正在尝试安装一个名为JamShellBrowser的商业组件,但它不会安装 我已经联系了开发商,但同时我想知道:Delphi 什么是.vrc文件,它是如何生成的,您可以使用IDE删除它吗?,delphi,delphi-xe4,Delphi,Delphi Xe4,我正在尝试安装一个名为JamShellBrowser的商业组件,但它不会安装 我已经联系了开发商,但同时我想知道: 什么是vrc文件 它是如何生产的 它可以用Delphi XE4 IDE控制或修改吗 我查看了IDE的帮助,但找不到任何关于vrc文件的信息,我搜索了DelphiVRC,没有找到任何对我有帮助的信息 错误消息是: 正在检查项目依赖项 编译JamShellDelphiXE4.dproj(版本,Win32) “JamShellDelphiXE4.vrc”的brcc32命令行 c:\Pro
main图标“JamShellDelphiXE2_ICON.ico”
,甚至删除了vrc文件,当我尝试安装时,它也会自动生成
几个月前,我从Delphi 2010迁移到XE4,并注意到明显的新vrc文件,但我不知道它是什么,也不知道如何处理这些文件。我相信这是Delphi XE4和XE5的内置IDE行为,可能是由升级错误引起的。VRC文件的生成是无法禁用的,除非删除导致生成该文件的dproj文件中的标记 如果有办法修复或删除它,可能需要将您的dproj文件与另一个dproj文件进行比较,并查找仅适用于以某种方式进入.dpk+.dproj项目的.dpr+.dproj项目的内容,如
它似乎是一个中间文件,当.dpr+.dproj项目具有某些版本信息时自动生成,这些信息必须从.dproj文件中写入临时位置,然后作为版本信息资源编译并链接到应用程序中。然而,我也看到它是为一个.dpk+.dproj项目生成的,这也让我感到困惑
它似乎还包含用于默认应用程序图标和版本信息的资源,并且包通常没有versioninfo或应用程序图标资源
我发现可能是一个BUG,在DelphiIDE中没有UI允许您设置包的应用程序图标。然而,我有时会得到一个.VRC和一个.ICO文件。但除了向Embarcadero Quality Central报告问题外,我不知道有什么解决办法
对于.dproj项目,.VRC中间文件至少有一些意义。我看到以下内容:版本信息、应用程序图标和VCL样式(即AquaLightSlate.vsf)资源链接。这是一个澄清 我刚刚开始在Delphi RAD Studio XE5中安装几个组件库,我已经在XE2和XE4中安装了这些组件库。当我尝试构建它们中的大多数时,我会遇到同样的错误
The problem isn't so much the .vrc file itself, it's this particular error:
[BRCC32 Error] <project_name>.vrc(2): file not found: <project_name>_Icon.ico
问题不在于.vrc文件本身,而是这个特殊的错误:
[BRCC32错误].vrc(2):未找到文件:\u Icon.ico
我想不出绕过它的方法,我也不知道它在找什么,也不知道它在哪里
我倾向于将我的组件库从一个版本复制到下一个版本,打开它们,构建它们,然后安装它们(即安装程序没有附带的那些)。我在以前的版本中从未见过这种情况。然而,这是我第一次安装RAD Studio;在过去,我刚刚参加了德尔福。因此,也许这与安装了
C++
有关?打开你的@PROJECT@.dproj在任何文本编辑器文件中查找行
<Icon_MainIcon>@PROJECT@_Icon.ico</Icon_MainIcon>
@PROJECT@_Icon.ico
并删除它们。
每个构建目标都会找到一个。
保存文件,您就完成了
编辑:原始答案引用了.dpr文件,但是请注意要编辑的部分在.dproj中,因此我更新了上面的答案以反映这一点 A
.vrc
是由Delphi MSBuild进程创建的一个临时文件,用于编译资源文件(.res),该文件将在最终二进制输出中链接。它将传递给CodeGear资源编译器/绑定器(cgrc.exe),并在生成过程后删除
它不会出现在.dproj文件中的任何位置。此行为来自BuildVersionResource
target,从$(BDS)\Bin\CodeGear.Common.Targets导入。如果您想更好地理解构建过程,请查看此文件(以及CodeGear.Delphi.Targets
)
从.dproj中删除
标记是不够的,因为VERSIONINFO资源还可以强制创建.vrc文件(我相信“vrc”代表“Version Resource”,尽管它也用于应用程序中的主图标)
对于包,Delphi总是将版本信息放在包项目中。对于包项目,“包含版本信息”IDE选项将被忽略
所以,如果你(像我一样)
- 不要依赖DelphiIDE来设置应用程序主图标
- 不要依赖delphiide来设置版本信息资源;及
- 请设法为所有内容包含您自己的资源文件
通过在msbuild调用中将SkipResGeneration
设置为true
,可以完全禁用其创建。例如:
msbuild.exe myProject /t:Build /p:Config=Release /p:SkipResGeneration=true
但是,这仅适用于基于MSBuild的生成。我不知道如何对Delphi IDE中的构建执行相同的操作。我必须更改我的X.optset文件以使其正常工作。
X是您从中带来这些选项的Delphi版本的名称。我的是PolyDelphiXE2.optset。
一旦我纠正了这个名字,编译那个broug就不再有趣了