错误 MSB8052:MSVC 工具集版本“14.28.29333”与“v120”平台工具集不兼容

Posted

技术标签:

【中文标题】错误 MSB8052:MSVC 工具集版本“14.28.29333”与“v120”平台工具集不兼容【英文标题】:error MSB8052: MSVC Toolset Version '14.28.29333' is not compatible with 'v120' Platform Toolset 【发布时间】:2021-07-19 14:02:42 【问题描述】:

我长期以来一直面临这个问题,我正在尝试在 VS 2019 中构建一个项目,该项目以前在 VS 2013 中构建良好。我遇到了这个错误,在 Microsoft 论坛上没有任何定义。

我已尝试使用 2019 工具集进行所有重定向以及将工具集版本更改为项目配置文件中的当前版本,但完全没有成功。

我不确定为什么连微软论坛都没有对此错误代码的任何解释(错误 MSB8052)

此外,该项目仍然在项目名称前的括号中显示 Visual Studio 2013。我已将所有工具集更改为使用 2019 版本,但这并没有改变。

错误如下:error MSB8052: MSVC Toolset Version '14.28.29333' is not compatible with 'v120' Platform Toolset。请将平台工具集更改为 v142 或将 MSVC 工具集版本(VCToolsVersion 属性)更改为格式为“12.0*.*”的版本。要为给定的平台工具集使用默认 MSVC 工具集版本,请不要设置 VCToolsVersion 属性。

不知何故,它仍在使用旧平台工具集。有人可以帮我吗? 在此输入代码

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Matrix">
    <MatrixProjectDir>..\..\..</MatrixProjectDir>
  </PropertyGroup>
  <PropertyGroup Label="Globals">
    <ProjectGuid>173A4A3E-C861-4013-9366-08716BF7BCCD</ProjectGuid>
    <RootNamespace>LogicNpcUnmanagedSupport</RootNamespace>
    <SccProjectName>SAK</SccProjectName>
    <SccAuxPath>SAK</SccAuxPath>
    <SccLocalPath>SAK</SccLocalPath>
    <SccProvider>SAK</SccProvider>
    <Keyword>Win32Proj</Keyword>
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>StaticLibrary</ConfigurationType>
    <UseOfMfc>Dynamic</UseOfMfc>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v142</PlatformToolset>
    <CLRSupport>true</CLRSupport>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>StaticLibrary</ConfigurationType>
    <UseOfMfc>Dynamic</UseOfMfc>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v142</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    <Import Project="..\..\..\Build\PropertySheets\MatrixReleaseSettings.props" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    <Import Project="..\..\..\Build\PropertySheets\MatrixDebugSettings.props" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <RunCodeAnalysis>true</RunCodeAnalysis>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <AdditionalIncludeDirectories>..\Include;$(ProjectDir)\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_COMPILING_NPC_LIB_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Lib>
      <OutputFile>$(OutDir)ag$(ProjectName).lib</OutputFile>
      <TargetMachine>MachineX64</TargetMachine>
    </Lib>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <AdditionalIncludeDirectories>..\Include;$(ProjectDir)\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_COMPILING_NPC_LIB_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
    </ClCompile>
    <Lib>
      <OutputFile>$(Configuration)\ag$(ProjectName).lib</OutputFile>
      <TargetMachine>MachineX64</TargetMachine>
    </Lib>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="agGuid.cpp" />
    <ClCompile Include="agLogicNpcBuffer.cpp" />
    <ClCompile Include="agLogicNpcCallForwarder.cpp" />
    <ClCompile Include="agLogicNpcClient.cpp" />
    <ClCompile Include="agLogicNpcDispatcher.cpp" />
    <ClCompile Include="agLogicNpcException.cpp" />
    <ClCompile Include="agLogicNpcHeader.cpp" />
    <ClCompile Include="agLogicNpcServer.cpp" />
    <ClCompile Include="stdafx.cpp">
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="agArrayWrapper.h" />
    <ClInclude Include="agArrayWrapperComposite.h" />
    <ClInclude Include="agArrayWrapperPrimitive.h" />
    <ClInclude Include="agGuid.h" />
    <ClInclude Include="agLogicNpcBuffer.h" />
    <ClInclude Include="agLogicNpcCallForwarder.h" />
    <ClInclude Include="agLogicNpcClient.h" />
    <ClInclude Include="agLogicNpcContentFlags.h" />
    <ClInclude Include="agLogicNpcDispatcher.h" />
    <ClInclude Include="agLogicNpcException.h" />
    <ClInclude Include="agLogicNpcHeader.h" />
    <ClInclude Include="agLogicNpcServer.h" />
    <ClInclude Include="agLogicNpcServerInfo.h" />
    <ClInclude Include="agLogicNpcTransport.h" />
    <ClInclude Include="stdafx.h" />
    <ClInclude Include="targetver.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>

enter code here -  MatrixDebugSettings.props
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
    <Import Project="MatrixBaseSettings.props" />
    <Import Project="MatrixMultiProcessorOptionSetting.props" />
    <Import Project="MatrixDebugBaseSettings.props" />
  </ImportGroup>
  <PropertyGroup>
    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
  </PropertyGroup>
</Project>

enter code here - Microsoft.Cpp.x64.user.props
<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup />
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

【问题讨论】:

您是否更改了所有项目的所有构建配置的工具集? 老实说,我会重新创建项目文件。修复项目配置很痛苦。 这听起来像是某种项目损坏。尝试追踪它的一种方法是打开开发人员命令提示符并运行msbuild nameofyour.vcxproj /p:Configuration=Debug /p:Platform=x64 /pp:test.out。查看test.out 并尝试查看PlatformToolset 和/或VCToolsVersion 哪里出错了。 我观察到的一件烦人的事情是,我已经尽可能地更改并检查了项目中的 v142,但项目仍然在项目名称后的括号中显示 Visual Studio 2013(例如 LPCUnmanagedSupport*(视觉工作室 2013))。即使配置显示它正在使用 2019 工具集,这也不会发生。您知道可能出了什么问题吗? 【参考方案1】:

可以直接打开vcxproj文件,然后确认修改Platform ToolsetV142

如果不起作用,您可以尝试删除 sln 文件旁边的 .vs 文件夹。

【讨论】:

感谢您的回信,vcxproj 文件已经更新为 v142,我也尝试删除 .vs 文件夹,但错误仍然存​​在。 我观察到的一件烦人的事情是,我已经尽可能地更改并检查了项目中的 v142,但项目仍然在项目名称后的括号中显示 Visual Studio 2013(例如 LPCUnmanagedSupport*(视觉工作室 2013))。即使配置显示它正在使用 2019 工具集,这也不会发生。您知道可能出了什么问题吗? @YatharthTomar,你能在这里提供 vcxproj 文件吗? 项目文件内容已添加到问题本身中。感谢您再次与我们联系 感谢分享。我找到了$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props..\..\..\Build\PropertySheets\MatrixDebugSettings.props。它们与 v142 兼容吗?

以上是关于错误 MSB8052:MSVC 工具集版本“14.28.29333”与“v120”平台工具集不兼容的主要内容,如果未能解决你的问题,请参考以下文章

error MSB6006: “aapt.exe”已退出,代码为-1073741819

error MSB8008: 指定的平台工具集(v110)未安装或无效。请确保选择受支持的 PlatformToolset 值

VS2017报错 MSB803MSB8036 找不到 Windows SDK 版本8.1

错误 MSB4019 - MSBUILD 正在寻找不存在版本的导入

错误MSB8008:指定的平台工具集(v120)未安装或无效[重复]

错误 C2327:不是类型名称、静态或枚举数 - 仅限 MSVC14