【发布时间】:2014-06-04 23:04:00
【问题描述】:
在 C++Builder XE5 中。
我的理解is that二进制文件MyProject.res(由编译器在与.cbproj文件相同的目录中创建)包含程序图标的编译版本和项目版本详细信息(虽然我的似乎也包含一个 XML 清单)。
但此信息也包含在.cbproj 文件和.ico files 中;如果我删除 .res 文件,那么它似乎会被重新创建,就像我下次打开项目时一样。
那么将*.res 标记为不在源代码管理中是否安全? (我使用git)。和/或者是否可以将其生成在与目标文件相同的目录中,这样它就不会与源文件混在一起?
(这在 C++Builder 5 中肯定是不安全的 - 如果您删除了 .res 文件,然后它会抱怨找不到它,并且您丢失了图标)。
更新:这是否也适用于.tlb 文件?这似乎是根据.ridl文件编译的,如果我删除它会自动重新生成。
【问题讨论】:
-
关于资源文件:如果你是一个开发者,我认为没有必要将你的 .res 文件置于源代码控制之下。然而,我的一些同事报告了多用户项目的问题 - 从存储库(subversion)中提取文件后资源变得“混乱”。特别是 TImageList 图像的透明度/背景颜色属性。然而,它似乎只影响某些系统,不幸的是我不知道为什么。出于这个唯一原因,我们确实在源代码管理中包含 .res 文件。
-
注意:我提到的导致问题的拉取文件是 .dfm 文件。
-
DFM 确实需要在源代码管理中,因为它们是存储表单详细信息的地方! AFAIK 虽然 DFM 和 RES 之间没有关系?
-
更新:几个月后,仍然没有遇到任何问题让
.res和.tlb脱离源代码控制。 -
@MattMcNabb:还要确保在将 DFM 置于源代码控制之前将其设置为文本模式,然后您可以对它们执行差异等。