在docker容器中为cmake配置Visual Studio工具集路径

问题描述 投票:0回答:1

我使用了一个例子 Microsoft 为 C++ 应用程序创建构建容器。

它可以工作,我可以使用 vs 提示符来运行 msbuild.exe。

尽管如此,当我尝试使用 cmake 来预配置我的项目时,它会抛出

Generator

    Visual Studio 17 2022

  could not find any instance of Visual Studio.

我如何在容器内强制声明它的 vs 工具集安装路径?

尝试设置路径,但没有任何改变

c++ docker visual-studio cmake msbuild
1个回答
0
投票

我不确定我是否理解“强制声明与工具集安装路径”的含义,但您从微软链接的文档提供了一个 docker 文件,其中包含引用 vs_buildtools 的行。可以修改此行以安装您需要的组件。

这是我为 C++ cmake 项目 (conan) 工作的示例:

    && (call C:\TEMP\Install.cmd vs_buildtools.exe --quiet --wait --norestart --nocache install `
    --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" `
    --channelUri C:\TEMP\VisualStudio.chman `
    --installChannelUri C:\TEMP\VisualStudio.chman `
    --add Microsoft.VisualStudio.Component.Windows10SDK.22621 `
    --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended`
    --remove Microsoft.VisualStudio.Component.Windows81SDK)

以下是 vs_buildtools 的 CLI 参数的说明: https://learn.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio?view=vs -2022

以下是使用这些参数的一些示例:https://learn.microsoft.com/en-us/visualstudio/install/command-line-parameter-examples?view=vs-2022

这里是包含工作负载/组件 ID 的链接,您可以使用它来构建所需的组件:https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-构建工具?view=vs-2022

如果您需要发现有关构建工具的信息,可以使用 vswhere.exe:

C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe -all -products *

最后,这里提到了一些 CMake 变量,可能会有所帮助:https://cmake.org/cmake/help/latest/variable/CMAKE_GENERATOR_INSTANCE.html

特别是:

如果未显式指定 CMAKE_GENERATOR_INSTANCE 的值 通过用户或工具链文件,CMake 查询 Visual Studio 安装程序查找 VS 实例,选择一个实例,然后设置变量 作为持久保存该值的缓存条目。如果一个环境 VS##0COMNTOOLS 形式的变量,其中 ## Visual Studio 主要 版本号,设置并指向Common7/Tools目录 在其中一个 VS 实例中,将使用该实例。否则, 如果安装了多个 VS 实例,我们不会定义是哪一个 默认选择。

© www.soinside.com 2019 - 2024. All rights reserved.