13

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

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

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

我检查了 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 文件,但没有...因此消息,但即使我MAINICON ICON "JamShellDelphiXE2_Icon.ico"从 vrc 文件中删除了该行,甚至删除了 vrc 文件,它也会在我尝试安装时自动生成。

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

4

5 回答 5

14

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

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

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

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

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

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

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

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

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

于 2014-11-15T23:02:11.887 回答
11

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

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

并删除它们。您会发现每个构建目标都有一个。保存文件,您就完成了。

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

于 2014-01-15T17:40:37.247 回答
10

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

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

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

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

我发现可能是一个 BUG 是 Delphi IDE 中没有 UI 可以让您设置包的应用程序图标。然而,我有时会得到一个 .VRC 和一个 .ICO 文件。但除了将问题报告给 Embarcadero Quality Central 之外,我不知道有什么解决方法。

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

于 2013-10-25T17:56:32.317 回答
1

这是一个澄清...

我刚刚开始将几个组件库安装到我已经安装在XE2XE4中的Delphi RAD Studio XE5中。当我尝试构建它们中的大多数时,我得到了同样的错误。

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++安装有关?

于 2013-12-06T06:13:21.643 回答
0

我必须更改我的 X.optset 文件才能使其正常工作。X 是您带来这些选项的 Delphi 版本的名称。我的是 PolyDelphiXE2.optset。一旦我在这里更正了名称,就没有更多有趣的编译带来不同的 ico 参考。

于 2019-07-02T19:29:24.693 回答