.res文件是否需要在源代码管理中?

时间:2014-06-04 23:04:01

标签: c++builder c++builder-xe5

在C ++ Builder XE5中。

我理解is that二进制文件MyProject.res(由编译器在与.cbproj文件相同的目录中创建)包含程序图标的编译版本和项目版本详细信息(虽然我的似乎也包含XML清单)。

但此信息也包含在.cbproj文件和.ico files中;如果我删除了.res文件,那么它似乎就是在下次打开项目时重新创建的。

*.res标记为不在源代码管理中是否安全? (我使用git)。和/或是否可以将它生成在与目标文件相同的目录中,因此它不会与源混合使用?

(这在C ++ Builder 5中肯定不安全 - 如果你删除了.res文件,那么就会抱怨它无法找到它,而你丢失了你的图标。)

更新:这是否也适用于.tlb文件?这似乎是基于.ridl文件编译的,如果我删除它,那么它会自动重新生成。

2 个答案:

答案 0 :(得分:4)

如果删除,C ++ Builder 6.0及更高版本将重新创建RES文件。我将它们视为其他临时/构建文件(如OBJ文件),不要将它们放在版本控制软件中。我确实有夜间备份,包括所有这些文件,我认为这仍然是一种很好的做法。

我不确定TLB文件。我会暂时删除(aka-rename)一个并查看它是否重新创建到同一个状态。如果是这样,应该与RES文件相同。

但是,如果您拥有所有已编译的资源,则不适用于第三方库。在那种情况下,我仍然没有放在我的版本控制中,因为我不打算修改它们。我只是备份。

答案 1 :(得分:3)

对于它的价值,TFS源代码控制默认值是排除*.res但包括*.tlb

因此,您应该期望*.res文件由其关联的版本创建。如果构建不存在,则应包含*.res文件。

我怀疑您对*.tlb文件的构建是正确的,但也许TFS不会在默认情况下排除这些文件,因为扩展并不完全是OLE类型库文件所独有的。