将RC文件直接添加到Delphi DPR

问题描述:

我正在努力控制IDE外部的一些项目选项,例如版本编号。我可以做到这一点,如果我 (i)外部编译相关的RC文件创建RES文件并将其包含在DPR中,或(ii)将RC文件添加到项目中。将RC文件直接添加到Delphi DPR

但是,我不能仅仅通过向DPR添加一行{$ R'dummy.res''dummy.rc'}表格来工作。当且仅当RES文件已经存在时,它才会编译/编译OK。我使用的是XE6,但在XE甚至德尔福7中我都得到了相同的行为。

但有很多答案表明向DPR添加这样的行是所有需要做的。任何人都可以澄清一下吗?

+0

有关完整示例,请参阅http://*.com/a/11782584。只有在文件名中有空格时才需要引号(这可能不是必需的)。 .rc文件是否与项目位于同一文件夹中? – 2014-12-03 21:08:19

+0

是的,这是一个测试项目 - 一切都在同一个文件夹中。 – TomB 2014-12-03 21:35:40

+0

你正在做一个“编译”或完整的“构建”? – 2014-12-03 21:36:51

我已经能够重现类似于您所描述的内容。它可能会或可能不会和你一样。

我创建了一个新项目,并在顶层项目文件旁边放了一个.rc文件。然后我将这一行添加到项目文件中:

{$R myresource.res myresource.rc } 

然后我编译并且没有.res文件出现。然后我保存该项目并重新编译,现在出现.res文件。

在分析了这一系列事件之后,我想我明白发生了什么事情。在保存项目之前,.dproj文件中没有任何内容会触发资源编译。当您保存该项目时,它将显示在.dproj文件中:

<RcCompile Include="myresource.rc"> 
    <Form>myresource.res</Form> 
</RcCompile> 

这很有可能,这是发生在您身上的事情。

我认为你可能最好使用IDE来管理资源或自己编译它们。例如,使用项目菜单上的资源和图像操作完成前者。后者可以通过预先构建的操作完成。

+5

解决方案应该是通过Shift-F11或项目管理器中相应的菜单命令或按钮或上下文菜单将rc文件添加到项目中。直接编辑dpr文件通常是怪异行为的来源。 – 2014-12-03 21:25:02

+0

大卫,我不太明白你的意思是“把rc文件放在一边”。你的意思是你只是打开它,而不添加到项目? – TomB 2014-12-03 21:37:42

+0

我认为[文档](http://docwiki.embarcadero.com/RADStudio/en/Resource_file_%28Delphi%29)没有明确区分项目源和单元。虽然我不确定。 – 2014-12-03 21:37:43