2016-11-20 33 views
1

我已经下载了用于mac的visual studio并创建了一个跨平台的解决方案。我想使用OpenTK v2(不是xamarin提供的那个)。我可以删除Xamarin版本的OpenTK并使用另一个?

问题是,似乎有一个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()但它仍然不喜欢它。

回答

2

1)设置用于该被引用组件的Alias(参考属性):

enter image description here

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 
+0

这个工作,至少项目编译没有错误,但在运行时,当加载使用OpenTK的类时,它会给出TargetInvocationException。 还有其他要求吗? – Tom

相关问题