Visual Studio 2008 Post Build事件 - 仅在Rebuild上运行

时间:2010-04-22 14:49:14

标签: visual-studio rebuild build-events

在Visual Studio 2008中,我们运行一个post build事件,该事件调用NANT,然后创建我们的配置文件。

e.g。

if $(SolutionDir) == . GOTO end
nant -buildfile:$(SolutionDir)default.build create..web.config

有没有办法只在ReBuild上运行它?

1 个答案:

答案 0 :(得分:3)

我认为您可以通过指定构建目标而不是使用构建事件来实现此目的。尝试创建AfterClean目标以删除生成的配置文件,并创建BeforeBuild目标以创建它们。确保为BeforeBuild目标设置文件依赖项,因此msbuild知道它应该只在文件不存在时运行该步骤。

我实际上没有尝试过这个,但我相信如果目标文件不存在,msbuild将只运行目标。重建时,将调用清理过程,然后调用AfterClean目标。

您可以阅读有关构建目标here的更多信息。使用构建目标而不是事件的唯一真正缺点是它们在VS UI中的任何位置都不可见 - 只有在检查项目文件时才能找到它们。

可能有更直接的解决方案涉及事件 - 请查看msbuild团队博客here