将 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错误

如何将VS 2010迁移到VS 2015?

MFC C++/CLI 项目:VS2012 中的 /CLR 开关导致调试问题

VS 2015打开项目闪退,新建项目提示未将对象引用到实例

如何将C#项目从VS2008迁移到VS2017

将 C++ ATL 可执行应用程序从 VS2003 迁移到 VS2013