Могу ли я удалить версию OpenTK для Xamarin и использовать другую?

Я загрузил визуальную студию для Mac и создал кросс-платформенное решение. Я хочу использовать OpenTK v2 (не тот, который поставляется с xamarin).

Проблема в том, что существует пространство имен OpenTK, которое используется для запуска Xamarin.Mac, даже если на него нет ссылок. Типы (Vector4 и т. д.) и класс Math Helper отображаются в моем решении, даже если ссылка не отображается в разделе ссылок.

Когда я добавляю .dll OpenTK v2 в пакеты (из nuget), я получаю сообщение об ошибке: «Импортированный тип« Opentk.Vector3 »(или любой другой тип) определяется несколько раз. Один раз в OpenTk, а другой в Xamarin.mac (v0).

Я удалил ссылку на Xamarin.Mac, и ошибка исчезла, но затем, конечно, я получаю сообщения об ошибках, говорящих о том, что я не могу использовать CoreGraphics и т. д.

Есть ли способ указать, какой тип вы имеете в виду? Или удалить ссылки на OpenTK, которых там быть не должно?

Я пробовал OpenTK.Matrix4 mat = new OpenTK.Matrix4(), но ему все равно не нравится.


person andrew    schedule 20.11.2016    source источник


Ответы (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
person SushiHangover    schedule 20.11.2016
comment
Это работает, по крайней мере, проект компилируется без ошибок, но при запуске выдает TargetInvocationException, когда загружается класс, использующий OpenTK. Требуется ли что-то еще? - person Tom; 07.02.2017