如果修改了一个RC文件,Delphi会重新编译它。如果一个RC文件有RCDATA或BITMAP声明,而这些声明引用的文件已经发生了变化,除非我通过删除.RES文件或对顶层.RC文件进行“touch”操作(修改文件时间戳),否则Delphi不会再次将.RC文件重新编译为.RES文件。
以下是一个示例TEST.RC文件:
当TEST.RC被修改时,会导致重新编译;但是当"File.txt"被修改时,Delphi在"Compile"时不会重新编译资源。我不想只使用"Build",因为这会将我的时间从几秒钟增加到几分钟。
有人成功地让Delphi与.RC文本文件和依赖项正常工作吗?尽管有些人添加资源后从未更改过它们,但我已经开始使用.RC文件来存储二进制或文本数据,这些数据位于.RC文件中的RCDATA部分。
请注意,在pre-build或post-build中添加"delete .res"步骤似乎会破坏Delphi IDE/编译器。在IDE外部构建时(始终在运行msbuild之前删除某些.res文件),我可以解决这个问题,但在IDE内部,Delphi没有给我太多选择。
有人有解决方案吗?(我在Delphi 2007中遇到了这个问题,但任何适用于2007至XE3版本的Delphi的解决方案都受到欢迎。)
以下是一个示例TEST.RC文件:
SAMPLE RCDATA "File.txt"
当TEST.RC被修改时,会导致重新编译;但是当"File.txt"被修改时,Delphi在"Compile"时不会重新编译资源。我不想只使用"Build",因为这会将我的时间从几秒钟增加到几分钟。
有人成功地让Delphi与.RC文本文件和依赖项正常工作吗?尽管有些人添加资源后从未更改过它们,但我已经开始使用.RC文件来存储二进制或文本数据,这些数据位于.RC文件中的RCDATA部分。
请注意,在pre-build或post-build中添加"delete .res"步骤似乎会破坏Delphi IDE/编译器。在IDE外部构建时(始终在运行msbuild之前删除某些.res文件),我可以解决这个问题,但在IDE内部,Delphi没有给我太多选择。
有人有解决方案吗?(我在Delphi 2007中遇到了这个问题,但任何适用于2007至XE3版本的Delphi的解决方案都受到欢迎。)
del
命令无法正常工作(它会混淆 Delphi IDE 编译器),但在预构建事件中执行touch foo.rc
命令可以解决问题。我想在预构建事件中执行 "rc.exe" 命令也是完美的解决方案。 - Warren P