什么是.vrc文件,如何生成,是否可以使用IDE将其删除?

时间:2013-10-25 15:13:15

标签: delphi delphi-xe4

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

我联系过开发者,但同时我想知道:

  1. 什么是vrc文件?
  2. 它是如何产生的?
  3. 可以使用Delphi XE4 IDE进行控制或修改吗?
  4. 我检查了IDE的帮助,但是我找不到任何关于vrc文件的内容,我搜索了Delphi vrc,但找不到任何可以帮助我的东西。

    错误消息是:

      

    检查项目依赖性......

         

    编译JamShellDelphiXE4.dproj(Release,Win32)

         

    “JamShellDelphiXE4.vrc”的brcc32命令行

         

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

         

    [BRCC32错误] JamShellDelphiXE4.vrc(2):找不到文件:JamShellDelphiXE2_Icon.ico

         

    失败

         

    经过时间:00:00:00.1

    我在组件文件夹中搜索了一个ico文件,但是没有...因此消息,但即使我从vrc文件中删除了行MAINICON ICON "JamShellDelphiXE2_Icon.ico",甚至删除了vrc文件,它也会自动生成当我尝试安装时。

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

5 个答案:

答案 0 :(得分:11)

.vrc是由Delphi MSBuild进程创建的临时文件,用于编译将在最终二进制输出中链接的资源文件(.res)。它将传递给 CodeGear Resource Compiler / Binder (cgrc.exe)并在构建过程后删除。

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

从.dproj中删除<Icon_MainIcon>标记还不够,因为VERSIONINFO资源也可以强制创建.vrc文件(我相信&#34; vrc&#34;代表&#34;版本资源&#34;,虽然它也用于应用程序中的主图标。)

如果是软件包,Delphi总是将软件信息放在软件包项目中。 &#34;包含版本信息&#34;包项目忽略IDE选项。

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

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

您可以通过在msbuild调用中将SkipResGeneration设置为true来完全禁用其创建。 E.g:

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

但是,这仅适用于基于MSBuild的构建。我不知道如何为Delphi IDE的构建做同样的事情。

答案 1 :(得分:9)

我认为这是Delphi XE4和XE5的内置IDE行为,可能是由升级错误引起的。生成VRC文件是您无法禁用的,除非删除dproj文件中导致生成它的标记。

如果有办法解决或删除它,可能需要将您的dproj文件与另一个dproj文件进行比较,并查找仅适用于.dpr + .dproj项目的内容,该项目以某种方式进入您的.dpk + .dproj项目,如<Icon_MainIcon>

它似乎是一个中间文件,当.dpr + .dproj项目有一些必须从.dproj文件写出的版本信息,并进入临时位置然后编译并链接到您的应用程序时,会自动生成一个中间文件作为版本信息资源。但是,我也看到它是为.dpk + .dproj项目生成的,这也使我神秘。

它似乎也包含您的默认应用程序图标和版本信息的资源,并且包通常不具有versioninfo或应用程序图标资源。

我发现可能是一个BUG是Delphi IDE中没有用于设置包的应用程序图标的UI。然而,我有时会获得.VRC和.ICO文件。但除了向Embarcadero Quality Central报告此问题外,我不知道有什么问题。

使用.dproj项目,.VRC中间文件至少有一定意义。我看到以下内容:版本信息,应用程序图标和VCL样式(即AquaLightSlate.vsf)资源链接。

答案 2 :(得分:9)

只需在任何文本编辑器文件中打开@ PROJECT @ .dproj并找到行

<Icon_MainIcon>@PROJECT@_Icon.ico</Icon_MainIcon>

并删除它们。 您将找到每个Build目标一个。 保存文件,你就完成了。

编辑:原始答案是指.dpr文件,但请注意要编辑的部分位于.dproj中,因此我已更新上面的答案以反映这一点。

答案 3 :(得分:1)

这是一个澄清......

我刚开始将几个组件库安装到 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

我无法找到绕过它的方法,我不知道它在寻找什么或在哪里。

我倾向于将我的组件库从一个版本复制到另一个版本,打开它们,构建它们并安装它们(即那些不带安装程序的版本)。我以前从未见过这种情况。但是,这是我第一次安装 RAD Studio ;在过去我刚刚有 Delphi 。所以也许它与安装C++有关?

答案 4 :(得分:0)

我必须更改X.optset文件才能使其正常工作。 X是您带来这些选项的Delphi版本的名称。我的是PolyDelphiXE2.optset。 一旦我更正了这里的名称,就再也不会进行有趣的编译了,从而带来了另一个ico参考。