7

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

例如

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

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

4

1 回答 1

3

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

我实际上没有尝试过,但我相信 msbuild 只会在目标文件不存在时运行目标。当您重建时,将调用清理过程,进而调用您的 AfterClean 目标。

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

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

于 2010-04-22T16:38:45.470 回答