将 CLR 项目迁移到 VS 2015 会引发 C2869 编译器错误
Posted
技术标签:
【中文标题】将 CLR 项目迁移到 VS 2015 会引发 C2869 编译器错误【英文标题】:migrating CLR project to VS 2015 throws C2869 compiler error 【发布时间】:2015-08-17 12:59:50 【问题描述】:我正在将 CLR 类库从 vs2010(v4.0) 转换为 vs2015。 我收到错误:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\system_error(24): 错误 C2869: 'std::errc': 已被定义为命名空间
我也无法在 x64 中添加引用,而 c# assebly 已使用 Any CPU 目标构建。
无法添加参考
面向更高版本的 .NET Framework 不是 .Net 程序集 不是注册的 ActiveX 控件
【问题讨论】:
【参考方案1】:对我来说,C2869 错误是由引用使用旧版 Visual Studio 构建的程序集引起的。我通过以下步骤解决了这个问题:
在您的项目中创建一个虚拟 cpp 文件,只需以下几行:
包括“Stdafx.h”//如果需要
包括“system_error”
仅编译虚拟文件并确认您看到了 C2869 错误。
从您的项目中删除所有引用,只编译虚拟文件并确认 C2869 消失。 一一添加您的引用并编译虚拟文件,直到 C2869 重新出现。现在您知道是哪个引用导致了问题。 要么使用 Visual Studio 2015(v140* 工具集)重建引用,要么找到删除引用的方法。【讨论】:
以上是关于将 CLR 项目迁移到 VS 2015 会引发 C2869 编译器错误的主要内容,如果未能解决你的问题,请参考以下文章
将VS 2012迁移到VS 2015后,C ++项目中的Xmemory错误