让 Visual Studio 使用不同的次要版本工具集?

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

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC"
下,我有不同的目录,例如:

  • 14.16.xxxxx
  • 14.24.xxxxx
  • 14.25.xxxx.

但是,我注意到 Visual Studio 总是使用最新的次要版本。

我可以将其设置为使用旧的次要版本的工具集吗?

c++ c visual-studio visual-studio-2019
2个回答
6
投票

您可以在解决方案级别。 遵循本指南

  1. 下载您需要/想要的任何次要版本。
  2. (可选)转到项目属性并在 C/C++ → 命令行菜单项中添加
    -Bv
    作为“其他选项”。 这将在构建时输出编译器版本。
  3. 转到
    C:\Program Files (x86)\Microsoft Visual Studio\2019\<yourVisualStudioVersion>\VC\Auxiliary\Build
    并找到您要使用的次要版本的
    Build.x
    文件夹并打开它。
  4. 复制
    Microsoft.VCToolsVersion.X.Y.props
    文件(其中 X 是主要版本,Y 是次要版本)
  5. 将文件粘贴到包含解决方案的解决方案文件的目录中。
  6. 在 Visual Studio 中,卸载您的项目。
  7. 编辑项目的 .vcxproj 文件并在
    <Import Project="$(SolutionDir)\Microsoft.VCToolsVersion.X.Y.props" />
    行上方添加
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  8. 重新加载您的项目,并执行测试构建。 如果做得正确,它应该使用指定的次要版本,您可以在输出中看到:

Output

这应该允许您针对主要版本工具集的特定次要版本进行构建。 该指南还提供了一些其他方法,其中之一是使用 CMake,一旦配置,它可能会更灵活。


0
投票

我采用了 Timothy G. 的建议(有效 - 谢谢!)并更进一步。

我覆盖了默认和基础平台 props/txt 文件中的 VCToolsVersion 和 VCToolsRedistVersion C:\Program Files\Microsoft Visual Studio�2\Enterprise\VC\Auxiliary\Build

我仍然在 C++ 项目属性的平台目标工具集中选择了 v143(在 Visual Studio 中 - 因此没有对项目进行任何更改)

我从中获取了 VCToolsVersion 和 VCToolsRedistVersion 信息:

VCToolsVersion and VCToolsRedistVersion info

并覆盖这些文件中的 VCToolsVersion 和 VCToolsRedistVersion 信息:

files to modify

bingo bango,项目构建完美。

这使我能够构建我们的遗留程序,而无需对项目本身进行任何更改。由于我们集成的其他一些软件不是最新的,我们公司被迫使用过时的工具集...并且我们的许多工具都在该软件中使用...

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