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

时间:2015-08-17 12:59:50

标签: c# c++ visual-studio

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

  

C:\ Program Files(x86)\ Microsoft Visual Studio   14.0 \ VC \ include \ system_error(24):错误C2869:'std :: errc':已被定义为命名空间

我也无法在x64中添加引用,而c#可以使用任何CPU目标构建。

  

无法添加参考

     
      
  • 定位更高版本的.NET Framework
  •   
  • 不是.Net程序集
  •   
  • 不是已注册的ActiveX控件
  •   

1 个答案:

答案 0 :(得分:0)

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

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

    包括“Stdafx.h”//如果需要

    包括“system_error”

  2. 仅编译虚拟文件并确认您看到C2869错误。

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