在C ++ Builder XE5中。
我理解is that二进制文件MyProject.res
(由编译器在与.cbproj
文件相同的目录中创建)包含程序图标的编译版本和项目版本详细信息(虽然我的似乎也包含XML清单)。
但此信息也包含在.cbproj
文件和.ico files
中;如果我删除了.res
文件,那么它似乎就是在下次打开项目时重新创建的。
将*.res
标记为不在源代码管理中是否安全? (我使用git
)。和/或是否可以将它生成在与目标文件相同的目录中,因此它不会与源混合使用?
(这在C ++ Builder 5中肯定不安全 - 如果你删除了.res文件,那么就会抱怨它无法找到它,而你丢失了你的图标。)
更新:这是否也适用于.tlb
文件?这似乎是基于.ridl
文件编译的,如果我删除它,那么它会自动重新生成。
答案 0 :(得分:4)
如果删除,C ++ Builder 6.0及更高版本将重新创建RES文件。我将它们视为其他临时/构建文件(如OBJ文件),不要将它们放在版本控制软件中。我确实有夜间备份,包括所有这些文件,我认为这仍然是一种很好的做法。
我不确定TLB文件。我会暂时删除(aka-rename)一个并查看它是否重新创建到同一个状态。如果是这样,应该与RES文件相同。
但是,如果您拥有所有已编译的资源,则不适用于第三方库。在那种情况下,我仍然没有放在我的版本控制中,因为我不打算修改它们。我只是备份。
答案 1 :(得分:3)
对于它的价值,TFS源代码控制默认值是排除*.res
但包括*.tlb
。
因此,您应该期望*.res
文件由其关联的版本创建。如果构建不存在,则应包含*.res
文件。
我怀疑您对*.tlb
文件的构建是正确的,但也许TFS不会在默认情况下排除这些文件,因为扩展并不完全是OLE类型库文件所独有的。