将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控件
对我来说,C2869错误是由引用使用旧版本的Visual Studio构建的程序集引起的。我用以下步骤解决了这个问题:
-
在项目中创建一个虚拟的cpp文件,只有以下几行:
include "Stdafx.h"//如果需要
<标题>包括"system_error" 标题> -
编译虚拟文件并确认你看到了C2869错误。
- 删除项目中的所有引用,编译虚拟文件并确认C2869消失。
- 逐个添加引用并编译虚拟文件,直到C2869重新出现。现在你知道是哪个引用导致了问题。
- 使用Visual Studio 2015 (v140*工具集)重建参考或找到一种方法删除参考。