有啥方法可以同时构建 Release 和 Debug 吗?

Posted

技术标签:

【中文标题】有啥方法可以同时构建 Release 和 Debug 吗?【英文标题】:Is there any way to make Release and Debug both build?有什么方法可以同时构建 Release 和 Debug 吗? 【发布时间】:2015-05-21 07:27:56 【问题描述】:

我目前正在使用 ASP.NET MVC 5 来制作 Web 应用程序。我总是想在我的 bin 文件夹中有一个发布版本。如果我将构建配置设置为 Release,它将不会调试我的断点。如果我将其设置为调试,我的/bin 构建将是一个调试构建。

有没有办法在编译时生成两个版本?即一个用于调试,第二个用于发布在/bin文件夹中?

【问题讨论】:

一个更好的问题可能是“你为什么认为你需要两个版本?”。但是,如果需要,您可以向项目添加一个构建后事件,该事件会启动一个新的 msbuild,例如 this,但没有记录器? @Smudge202 因为我希望我的 /bin 文件夹每次都可以上传(以备不时之需),而且这不会阻止我随时调试任何东西。 上传?我认为这是某种形式的部署过程?如果是这样,您应该考虑构建管道。您不应该部署调试版本。您部署 releases,它们是使用 Release 配置构建的、经过测试的等。 或者至少是“发布”选项。 【参考方案1】:

2019 年更新

在 Visual Studio 2015 中,实际上有一个选项可以一起构建多个配置。

您可以在Menu > Build > Batch Build.. 下找到此选项,这将打开以下窗口,我认为这很容易解释。

当然,如果您习惯使用键盘快捷键,只需使用:alt + B > T > Enter,所有选定的项目都会构建。

【讨论】:

【参考方案2】:

没有办法指示 VS 在构建时构建多个配置。从 VS 的角度来看,构建命令使用单一配置构建特定项目或项目解决方案(调试和发布只是两种可能的配置)。

但是,您可以使用构建后命令来执行任何操作(包括触发构建另一个配置)。然而,仅仅因为您可以在构建后做任何事情并不意味着它是最佳实践,甚至是一个好主意。

在您走这条路之前,您可能需要考虑这是否是xy problem。 “y”问题实际上是“我如何才能拥有我当前代码库的发布副本,即使它还没有准备好发布,并不断用最新的代码库更新最新的稳定版本?”

是否真的需要将最近编译的代码库(无论其质量如何)推送到生产版本,该代码库将在几秒钟内替换上一个稳定版本,而无需在调试会话中间按下单个按钮?我会收集到最有经验的开发人员会说“不”,大多数团队负责人会说“哦该死的不”。这是项目经理的噩梦。

您可能需要考虑设置一个持续集成构建服务器。我在这里暗中尝试,但我认为它可以满足您的需求(尽管不是您所要求的)。

过去,为小型项目设置 CI 服务器会产生大量开销,因此通常无法完成。这是guide on setting up CI using Visual Studio Online and Azure

【讨论】:

我并不是要在代码准备好构建时进行编译。我如何获得“构建后命令”来获得两者。我不能在项目中做任何事情,而不是向我的视觉工作室指示任何东西(无论它是否是通过插件的帮助完成的)以进行 2 构建(是的,当它准备好编译时)。 这不是推送到生产代码的问题,它只是碰巧编译。相反,它是关于在复制 .EXE 之前忘记切换到发布模式,从而无意中使用了旧版本。 CI 构建服务器可以做到这一点,但它似乎有点矫枉过正。

以上是关于有啥方法可以同时构建 Release 和 Debug 吗?的主要内容,如果未能解决你的问题,请参考以下文章

“分发”和“发布”构建配置有啥区别?

debug和release 模式有啥区别

我正在使用低端笔记本电脑来学习使用 web 和 android 设备的颤振。有啥方法可以加快构建过程吗?

有啥方法可以加速 maven 构建?

azure devops 中的 Pipeline 和 Release Pipeline 有啥区别?

有啥方法可以在取消 UIPopoverController 的同时触摸取消按钮?