微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CLR 库编译但 C# 调用返回错误 CS0103,即使存在已编译的元数据

如何解决CLR 库编译但 C# 调用返回错误 CS0103,即使存在已编译的元数据

我有一个带有类库 (C#) 和 CLR 类库 (C++) 的 Visual Studio 解决方案。 CLR 类库正确构建,就像头文件一样简单:

public ref class CLRClass
{
public:
    static void CLRMethod();
};

cpp 只实现了一个空的CLRMethod。在 C# 库中,我添加了对 CLR 项目的引用,我只是调用了 CLR 方法

CLRClass.CLRMethod();

C# 库未构建,返回错误

错误 CS0103:当前上下文中不存在名称“CLRClass”

但令人惊讶的是,如果我在 Visual Studio 中的 CLRClass 上按 F12,它确实将我带到了 dll 中编译文件的正确元数据,表明 CLR 库已正确编译并可访问:>

public class CLRClass
{
  public CLRClass();

  public static void CLRMethod();
}

我不明白元数据是如何访问的,但是在编译 C# 库时我收到了 CR0103 错误,关于如何解决这个问题有什么建议吗?

解决方法

这是 C# .Net 目标框架版本的问题。请注意,您的参考中有此警告: Warning in CLRLibrary that contains the CLRClass

这是因为 C# 类库的目标框架版本 (4.7.1) 比 C++/CLI 框架 (4.8) 的框架版本旧。只需重新定位您的 C++ 库。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。