我有与帖子“ C++/CLI DLL namespace not found in MSVS C# Project (successfully reproducable)”完全相同的问题,但没有犯过为发布用户解决问题的错误。
我有一个在VS2005中使用多年的C ++ / CLI项目。它包含一些本机代码和一些CLR包装器(ref类),以将本机功能公开给其他托管(C#)项目。我最近将此项目转换为2010(.vcxproj),编译正确,从我的C#项目引用了它,但是编译C#项目时出现错误CS0234:类型或名称空间名称'MySecondLevelNamespace'在名称空间'MyTopLevelNamespace中不存在'(您是否缺少装配参考?)。
我担心转换(尽管编译)不会将ref类暴露给托管调用方。 CLI和C#项目都配置为以2.0运行时为目标。我在这里想念什么?
同样,此代码(CLI项目和C#项目都对其进行调用)都可以在VS2005中正确编译。谢谢你的帮助!
最佳答案
CLI和C#项目都配置为以2.0运行时为目标。
那可能就是您的问题所在。 VC2010编译器只能针对.NET 4运行时。为.NET 2.0构建的唯一方法是将Visual Studio 2010配置为运行VC2005编译器。