将CLR项目迁移到VS 2015会抛出C2869编译器错误

本文关键字:C2869 编译器 错误 2015 项目 CLR 迁移 VS | 更新日期: 2023-09-27 18:08:13

我正在将CLR类库从vs2010(v4.0)转换为vs2015。我得到错误:

C:'Program Files (x86)'Microsoft Visual Studio14.0'VC'include'system_error(24): error C2869: 'std::errc':已被定义为一个命名空间

我也无法在x64中添加引用,而c#汇编已与任何CPU目标构建。

无法添加引用

  • 目标是更高版本的。net Framework
  • 不是。net程序集
  • 未注册ActiveX控件

将CLR项目迁移到VS 2015会抛出C2869编译器错误

对我来说,C2869错误是由引用使用旧版本的Visual Studio构建的程序集引起的。我用以下步骤解决了这个问题:

  1. 在项目中创建一个虚拟的cpp文件,只有以下几行:

    include "Stdafx.h"//如果需要

    <标题>包括"system_error"
  2. 编译虚拟文件并确认你看到了C2869错误。

  3. 删除项目中的所有引用,编译虚拟文件并确认C2869消失。
  4. 逐个添加引用并编译虚拟文件,直到C2869重新出现。现在你知道是哪个引用导致了问题。
  5. 使用Visual Studio 2015 (v140*工具集)重建参考或找到一种方法删除参考。