【问题标题】:Post-Build Event on Run (F5) In Visual Studio?在 Visual Studio 中运行 (F5) 后生成事件?
【发布时间】:2010-12-15 19:13:39
【问题描述】:

我在 Visual Studio 2010 中设置了构建后事件。我遇到的问题是,当我使用运行 (F5) 开始调试时,该事件没有运行——它似乎只有在我明确运行时才会运行构建 (F6)。

即使源文件已更改,这似乎也会发生(因此它必须构建才能运行)。

是否有控制此行为的设置?

【问题讨论】:

    标签: visual-studio visual-studio-2010


    【解决方案1】:

    后构建仅在构建后运行。因此,当您的构建工件是最新的时,它不会构建并且 postbuilds 也不会运行。

    如果它在构建时甚至无法运行,请检查以下内容:

    在 Visual Studio 中查看工具 -> 选项 -> 项目和解决方案 -> 构建运行。

    是否选中了“仅在运行时构建启动项目和依赖项”选项?

    尝试取消选中该选项。

    “在运行中,当项目过期时”选项的价值是什么? 应该是“提示构建”或“始终构建”以确保在按 F5 时触发构建。

    【讨论】:

    • 设置“始终构建”不会导致按 F5 后触发构建后事件。它只会发生,就像选项的标签清楚地表明,“当项目过期时”。
    • 是的,你是对的,但我只是想确定那不是“从不构建”
    • 嗯,设置已经如你所述。从您的回答来看,您似乎是说当我按 F5 时构建后应该触发(假设项目需要构建)?
    • 是的,当项目构建时,postbuild 应该运行。问题是,当你按 F5 时构建项目?您应该会在输出窗口中看到详细的日志。
    • 这对我有用。虽然它的工作原理有点令人困惑。
    【解决方案2】:

    它仅在成功构建后运行。这就是为什么它被称为 Post-Build 事件。

    也许你想要完成的事情可以用不同的方式来完成。你能提供更多细节吗?你想做什么?您想在每次调试会话之前运行什么,为什么?

    【讨论】:

      【解决方案3】:

      Visual Studio: Run C++ project Post-Build Event even if project is up-to-date

      使用带有不存在文件的自定义构建步骤作为输出以始终运行您的步骤。

      【讨论】:

        【解决方案4】:

        检查命令是否正确。一个简单的例子是:

        copy "$(SolutionDir)$(ProjectName)\test.txt" ".\test.txt"
        

        【讨论】:

        • 更简单:calc。提问者的构建事件很好,因为正如他所提到的,它在他构建时运行。
        【解决方案5】:

        我开发了一个简单的 VisualStudio 插件,它在实际启动项目之前拦截启动命令并重新构建解决方案。

        也许它对其他人有用: https://skydrive.live.com/redir.aspx?id=3dc36fae9ccfb71f&resid=3DC36FAE9CCFB71F!112&parid=root (BuildAndRunAddin.zip)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-06
          • 1970-01-01
          • 2016-08-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多