【问题标题】:Can I remove the Xamarin version of OpenTK and use another?我可以删除 OpenTK 的 Xamarin 版本并使用另一个版本吗?
【发布时间】:2016-11-20 08:26:42
【问题描述】:

我已经下载了 Visual Studio for mac 并创建了一个跨平台解决方案。我想使用 OpenTK v2(不是 xamarin 提供的那个)。

问题是似乎有一个 OpenTK 命名空间用于运行 Xamarin.Mac,即使它没有被引用。类型(Vector4 等)和 Math Helper 类显示在我的解决方案中,即使引用未显示在引用部分。

当我将 OpenTK v2 .dll 添加到包中(来自 nuget)时,我收到错误消息,提示“导入的类型 'Opentk.Vector3'(或任何类型)被定义了多次。一次在 OpenTk 中,另一个在 Xamarin.mac (v0) 中。

我已经删除了对 Xamarin.Mac 的引用并且错误消失了,但是我当然会收到错误说我不能使用 CoreGraphics 等。

有什么方法可以指定你的意思吗?或者删除不应该存在的对 OpenTK 的引用?

我试过 OpenTK.Matrix4 mat = new OpenTK.Matrix4() 但还是不喜欢。

【问题讨论】:

    标签: macos opentk xamarin.mac


    【解决方案1】:

    1) 为引用的程序集设置Alias(引用属性):

    2) 在源文件的顶部添加extern alias

    extern alias OpenTK2;
    

    3) 然后您可以使用using alias 或完全限定名称:

    using AlphaFunction = OpenTK2::OpenTK.Graphics.OpenGL.AlphaFunction;
    ~~~
    
    var alpha = AlphaFunction.Always;
    alpha = OpenTK2::OpenTK.Graphics.OpenGL.AlphaFunction.Equal
    

    【讨论】:

    • 这行得通,至少项目编译没有错误,但在运行时,当加载使用 OpenTK 的类时,它会给出 TargetInvocationException。还有什么需要的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2017-03-24
    • 2016-12-05
    • 2017-02-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多