• Visual Studio现已支持 C++ 开发容器


    今天我们很高兴与你分享一则消息:我们在Visual Studio 2022 17.4中为使用了CMake Presets的C++工程加入了开发容器(Dev Containers)支持。

    容器是打包所有组件以运行应用程序的好方法。 通过 Dockerfile 捕获所有先决条件,以便在部署和运行容器的任何地方都有一致的运行时环境,Dev Containers 扩展了这个概念,以捕获在容器中开发和构建应用程序所需的一切。 一段时间以来,我们一直观察到容器在 C++ 社区中变得越来越流行,因为它提供了可重现的构建环境。

    Visual Studio Code 已经支持 Dev Containers 有一段时间了。 从 Visual Studio 2022 17.4 开始,你现在也可以将开发容器用于你的 C++ 工程。

    尝试一下先

    你需要在 Windows 上安装 Docker Desktop 才能使用此功能。 这是使用 C++ 工作负载进行 Linux 和嵌入式开发的一部分,因此请确保在你的安装中选择它。

    >> 请移步至topomel查看图片 <<

    我们为使用CMake Presets的工程启用了此功能。 你可以克隆此示例以开始使用。

    >> 请移步至topomel查看图片 <<

    此工程与Visual Studio中的 File New CMake Project 相同,但有一点不同。 还有一个额外的文件夹 .devcontainer 包含 Dockerfile 和 devcontainer.json,它们共同定义了要启动的开发容器。

    在 Visual Studio 中打开此文件夹时,系统会提示你在容器中重新打开该文件夹。

    >> 请移步至topomel查看图片 <<

    在容器启动时首次使用时,会下载支持映像。 你可以在新的 Dev Containers 输出窗口中查看启动进度。

    >> 请移步至topomel查看图片 <<

    启动完成后,CMake 缓存生成开始,完成后你就可以正常编辑和调试了。

    你还可以使用工具栏中的 Target System 下拉菜单在 Dev Container 和其他选项之间切换。

    >> 请移步至topomel查看图片 <<

    设置选项

    开发容器在工具选项下有几个选项。 最重要的是,你可以控制是否提示在容器中重新打开。 你还可以将远程主机设置为运行容器的位置,远程主机必须运行 docker 服务。

    >> 请移步至topomel查看图片 <<

    一些额外信息

    该功能底层上使用了Linux容器。我们不支持具有这种机制的 Windows 容器,因此这与使用 MSVC 的传统 Windows C++ 开发无关。旨在用于跨平台开发。

    Visual Studio Code 的后端服务在 Dev Container 中运行,Visual Studio 并非如此。 Visual Studio 管理它在你工作时使用的开发容器的生命周期,但它以与其他 Linux 或 WSL 目标类似的方式将它们视为远程目标。 devcontainer.json 配置文件可能包含一些与 Visual Studio 无关的 VS Code 特定信息,例如所需的扩展。 Visual Studio 会忽略这些内容,因此预计任何一种环境都会使用通用的 Dev Container 定义。

    不要在 Visual Studio 和 VS Code 中同时打开同一个文件夹。这将导致它们连接到同一个容器,这将导致在两个上下文中运行的 CMake 与同一个文件夹发生冲突。

    总结

    万物皆周期,万物皆可容器化。
    它(你来定义它是什么)是个框,啥都可以装。

    最后

    Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
    本文来自:《Dev Containers for C++ in Visual Studio》

     

  • 相关阅读:
    JAVA毕业论文答辩管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
    分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
    港科夜闻|叶玉如校长对行政长官李家超先生10月25日的施政报告表示欢迎及感谢...
    PID算法数学原理
    Qt---day4---9.20
    四、【常用的几种抠图方式三】
    三角形最小路径和
    java-net-php-python-9基于java儿童福利院信息管理网站计算机毕业设计程序
    acwing-277. 饼干(《算法竞赛进阶指南》)
    安徽某高校《数学建模》上机习题1选讲(建立范德蒙矩阵;解线性方程组)
  • 原文地址:https://blog.csdn.net/mmxida/article/details/126882944