尝试制作构建规则以创建resx文件的访问者类

时间:2011-10-17 16:06:07

标签: visual-studio-2010 class build c++-cli accessor

我的C ++ / CLI项目中有resources.resx文件,并且想要创建一个构建来自动构建一个访问者类,以便在需要时帮助访问资源。我已经搜索了很多,但还没有找到一个像样的解决方案(使用vs2010)。

我可以使用以下方法创建访问者类:

resgen / str:c ++ resources.resx

这会创建一个resources.h文件(我想要的)和一个resources.resources文件(我可以删除)。但是,每当我更改resources.resx文件时,我都希望运行该命令,这让我有些头疼,因为该文件已经有一个构建目标,“托管资源编译器”,并且当它在该文件上运行resgen时,它包括7个其他资源文件,没有/ str开关。

到目前为止,唯一的自动解决方案是制作预构建事件命令,但这意味着每次构建时都会重新编译整个项目。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。在项目的预构建事件中,我插入了:

resgen /str:c++,myApp,resources,resources.h.new resources.resx myApp.resources.resources
del myApp.resources.resources
fc /b resources.h resources.h.new > NUL:
if NOT "%ERRORLEVEL%"=="0" ( type resources.h.new > resources.h )
del resources.h.new

基本上,我创建了一个新的resources.h并将其与现有文件进行比较。如果有任何差异,我使用type来复制文件以更新时间戳。这使得构建引擎只在需要时更新resources.h。不漂亮,但它完成了工作。