在
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC"
下,我有不同的目录,例如:
但是,我注意到 Visual Studio 总是使用最新的次要版本。
我可以将其设置为使用旧的次要版本的工具集吗?
您可以在解决方案级别。 遵循本指南:
-Bv
作为“其他选项”。 这将在构建时输出编译器版本。C:\Program Files (x86)\Microsoft Visual Studio\2019\<yourVisualStudioVersion>\VC\Auxiliary\Build
并找到您要使用的次要版本的 Build.x
文件夹并打开它。Microsoft.VCToolsVersion.X.Y.props
文件(其中 X 是主要版本,Y 是次要版本)<Import Project="$(SolutionDir)\Microsoft.VCToolsVersion.X.Y.props" />
行上方添加 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
。这应该允许您针对主要版本工具集的特定次要版本进行构建。 该指南还提供了一些其他方法,其中之一是使用 CMake,一旦配置,它可能会更灵活。
我采用了 Timothy G. 的建议(有效 - 谢谢!)并更进一步。
我覆盖了默认和基础平台 props/txt 文件中的 VCToolsVersion 和 VCToolsRedistVersion C:\Program Files\Microsoft Visual Studio�2\Enterprise\VC\Auxiliary\Build
我仍然在 C++ 项目属性的平台目标工具集中选择了 v143(在 Visual Studio 中 - 因此没有对项目进行任何更改)
我从中获取了 VCToolsVersion 和 VCToolsRedistVersion 信息:
并覆盖这些文件中的 VCToolsVersion 和 VCToolsRedistVersion 信息:
bingo bango,项目构建完美。
这使我能够构建我们的遗留程序,而无需对项目本身进行任何更改。由于我们集成的其他一些软件不是最新的,我们公司被迫使用过时的工具集...并且我们的许多工具都在该软件中使用...