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

Chr*_*elt 6 rebuild visual-studio build-events

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

例如

if $(SolutionDir) == . GOTO end
nant -buildfile:$(SolutionDir)default.build create..web.config
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*eck 3

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

我实际上没有尝试过这个,但我相信 msbuild 仅在目标文件不存在时才会运行目标。当您重建时,将调用清洁过程,然后调用 AfterClean 目标。

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

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