【发布时间】:2010-12-15 19:13:39
【问题描述】:
我在 Visual Studio 2010 中设置了构建后事件。我遇到的问题是,当我使用运行 (F5) 开始调试时,该事件没有运行——它似乎只有在我明确运行时才会运行构建 (F6)。
即使源文件已更改,这似乎也会发生(因此它必须构建才能运行)。
是否有控制此行为的设置?
【问题讨论】:
标签: visual-studio visual-studio-2010
我在 Visual Studio 2010 中设置了构建后事件。我遇到的问题是,当我使用运行 (F5) 开始调试时,该事件没有运行——它似乎只有在我明确运行时才会运行构建 (F6)。
即使源文件已更改,这似乎也会发生(因此它必须构建才能运行)。
是否有控制此行为的设置?
【问题讨论】:
标签: visual-studio visual-studio-2010
后构建仅在构建后运行。因此,当您的构建工件是最新的时,它不会构建并且 postbuilds 也不会运行。
如果它在构建时甚至无法运行,请检查以下内容:
在 Visual Studio 中查看工具 -> 选项 -> 项目和解决方案 -> 构建运行。
是否选中了“仅在运行时构建启动项目和依赖项”选项?
尝试取消选中该选项。
“在运行中,当项目过期时”选项的价值是什么? 应该是“提示构建”或“始终构建”以确保在按 F5 时触发构建。
【讨论】:
它仅在成功构建后运行。这就是为什么它被称为 Post-Build 事件。
也许你想要完成的事情可以用不同的方式来完成。你能提供更多细节吗?你想做什么?您想在每次调试会话之前运行什么,为什么?
【讨论】:
见Visual Studio: Run C++ project Post-Build Event even if project is up-to-date
使用带有不存在文件的自定义构建步骤作为输出以始终运行您的步骤。
【讨论】:
检查命令是否正确。一个简单的例子是:
copy "$(SolutionDir)$(ProjectName)\test.txt" ".\test.txt"
【讨论】:
calc。提问者的构建事件很好,因为正如他所提到的,它在他构建时运行。
我开发了一个简单的 VisualStudio 插件,它在实际启动项目之前拦截启动命令并重新构建解决方案。
也许它对其他人有用: https://skydrive.live.com/redir.aspx?id=3dc36fae9ccfb71f&resid=3DC36FAE9CCFB71F!112&parid=root (BuildAndRunAddin.zip)
【讨论】: