带你玩转Visual Studio——带你管理多种释出版本

2024-01-08 13:40

本文主要是介绍带你玩转Visual Studio——带你管理多种释出版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇文章带你玩转Visual Studio——带你发布自己的工程库让我们了解基本的静态库和动态库,并将自己的工程编译成库,也能在自己的工程中引入第三方库。正如上文提到的,我们在实际开发中可能会将工程释出(也叫发布)多个不同类型的版本,如即要有静态库也要有动态库,即有Debug也有Release。如何管理这些不同的释出版本就是本文要讲的内容。


为什么要有多种释出版本

我们每打开一个工程你都会在工具栏中看到有Debug和Release两个编译方式的选择。它们有什么区别,又为什么要有Debug和Release呢?

Debug与Release
图 1:Debug与Release

Debug

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。

Release

Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以使编译出的可执行文件或库的性能最高,以便用户很好地使用。

Debug与Release的区别

Debug和Release本质上就是两组不同的编译选择配制,各自的默认设置一般不用更改。它们最大的区别在于Release进行了优化,去掉了调试信息,因此Release常用无法进行正确的调试;而Debug没有进行优化,包含了调试信息,以方便程序员进行调试。我们可以通过比较它们的配制发现它们之间的区别:

  1. 代码编译的优化

    Debug
    Debug
    Release
    Release

  2. 使用的运行时库

    Debug
    Debug
    Release
    Release

    Debug使用的运行时库一般后面会加d,而Release的不加,关于运行时库的问题后面还会有专门章节的进行讲解。

  3. 链接的优化

    Debug
    Debug
    Release
    Release

释出方式的配制和管理

既然Debug或Release就一组配制,那能不能息增加一组配制呢?当然是可以的。还记得上一文带你发布自己的工程库中的例子Utils吗?既要编译静态库又要编译动态库,我们之前都是在Debug下配制的,但编译静态库与动态库切换时每次都要更改配制非常麻烦,其实我们只要为静态库与动态库添加两组两组机制,每次编译时切换一下编译项就可以了。

  1. 点击上面图1下拉列表框的Configuration Manager…或右键工程->属性->右上角的Configuration Manager…。打开Configuration Manager对话框。

  2. 在Active solution configuration下拉列表中点击New新建的一组配制。

    Configuration Manager
    Configuration Manager

  3. Copy settings from里有几个选择,Empty表示不拷贝任何配制,添加一组默认设置的配制项;Debug表示会拷贝已有的Debug这组配制中的所有设置,添加完后你再基于这个配制进行修改。一般我们会从已有的Debug或Release中拷贝然后再进行相应的修改,因为Debug或Release中有很多已经设置好的配制,这样不容易出错,而且Debug或Release也是默认的标准配制。

    New Solution Configuration
    New Solution Configuration

  4. 选择我们新添加的配制项Debug_static,右键工程->Properties进行相应的设置,这个在前面一文中已经讲过了,不再赘述。

  5. 同样的方式,我们可以增加Debug_dynamic、Release_Static、Release_Dynamic等配制项。

    新增多个配制项
    新增多个配制项



上一篇回顾:
带你玩转Visual Studio——带你发布自己的工程库

下一篇要讲述的内容:
带你玩转Visual Studio——带你多工程开发

这篇关于带你玩转Visual Studio——带你管理多种释出版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583639

相关文章

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri