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

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

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

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

  • 什么是vrc文件
  • 它是如何生产的
  • 它可以用Delphi XE4 IDE控制或修改吗
  • 我查看了IDE的帮助,但找不到任何关于vrc文件的信息,我搜索了DelphiVRC,没有找到任何对我有帮助的信息

    错误消息是:

    正在检查项目依赖项

    编译JamShellDelphiXE4.dproj(版本,Win32)

    “JamShellDelphiXE4.vrc”的brcc32命令行

    c:\ProgramFiles(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

    我在components文件夹中搜索ico文件,但没有。。。因此,即使我从vrc文件中删除了行
    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中安装几个组件库,我已经在XE2XE4中安装了这些组件库。当我尝试构建它们中的大多数时,我会遇到同样的错误

    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就不再有趣了