我有一个VisualStudio 2010解决方案,其中包含许多C ++项目(100以上)。 其中许多人在PostBuild事件中有一些行(文件复制等)。 使用tfs构建定义在我们的构建计算机上构建解决方案时会出现问题:
即使项目是最新的,也会执行帖子构建,并且会在“日志文件”中写入“创建”.unsuccessfulbuild“因为”AlwaysCreate“已指定”的行。这会大大增加构建时间,并使连续集成构建变得困难。 从VisualStudio运行时不会触发此PostBuild。
为了缩小问题范围(并排除任何可能的问题,引用不存在的文件等),我创建了一个新的解决方案文件,并使用VisualStudio项目向导向解决方案添加了一个新的C ++控制台应用程序项目。我在默认情况下改变的唯一方法是PostBuild事件中的这一行:echo“PostBuild Output”(只是在触发PostBuild时在日志文件中看到)。
然后我创建了一个运行此解决方案的新Build Definition。 即使项目是最新的,PostBuild仍然会被激活。如果我在命令窗口中构建运行msbuild的解决方案文件,则会出现同样的问题。但是从VisualStudio构建工作非常完美。
当项目“最新”时,有人可以给我一些关于如何避免这个PostBuild的建议吗? (我在构建机器上构建时检查了Linker OutputPath是否匹配$(TargetPath)设置。)