Как импортировать MySql Connector в проект Unity? - PullRequest
0 голосов
/ 28 августа 2018
  • Я попытался поместить базовые библиотеки DLL в папку ресурсов Unity. Результат: "бла-бла приведет к ошибке Unity to Crash."
  • Я пробовал добавлять ссылки вручную - Результат: Unity обновляет свои ссылки каждый раз, когда обновляет редактор, поэтому ничего не стоит.
  • Я пытался установить с использованием NuGet - Результат: ближе всего к успеху, поскольку он обрабатывает все зависимости и еще много чего, но я получаю: Assets / Scripts / Developing / TalkToDB.cs (3,7): ошибка CS0246: тип или пространство имен имя `MySql 'не может быть найдено. Вам не хватает ссылки на сборку?

Это какая-то комбинация "Использовать NuGet, а затем скопировать dll в активы?" или что-то подобное? потому что это лучшее из моих предположений.


Кроме того, я пробовал пару старых версий пакета NuGet, но безрезультатно. Кроме того, MySql.Data указан в списке ссылок "Assembly-CSharp" И мой Unity настроен на платформу 4.X Используя последний Unity 2018.2.5f1 (64-битный) (Я действительно надеюсь, что мне не нужно отказываться от 4.x, чтобы это работало ... Я пропущу инициализацию значений для свойств ..)

1 Ответ

0 голосов
/ 29 августа 2018

К счастью, я наткнулся на это:

Как получить MySql Connector / Net, работающий с Unity 2017

А что касается проблем безопасности. Мой ключ заключается в том, что ни одна из моих сессий никогда не должна быть постоянной из .NET - будет расширенных PHP-скриптов для изменения данных и всего, что касается повышенных разрешений.

Ссылка: Почему не следует подключать мобильное приложение к базе данных

Помимо этого,

Исключения из правила.

"Некоторые поставщики баз данных, возможно, предоставили драйверы для подключения к удаленным базам данных, но пока я не знаю ни одного.

Другие исключения включают подключение ODBC. Например, я слышал о том, что разработчики могут (или, по крайней мере, пытаться) подключаться к базам данных MySQL с помощью JDBC при разработке приложений на Java. На самом деле это не то же самое, что прямое подключение с помощью бинарного драйвера, однако, это близко ... » - 2

Это именно то, что я буду делать, используя MySql Connector для общения с драйверами MySql (который я слишком устал, чтобы вспомнить имя (возможно, он основан на ODBC? Я не помню. Таким образом, Google. Lol))

Таким образом, с помощью ссылки, приведенной вверху, Unity 2018 может быть совместим с последними (на момент публикации) MySql Connector (s) .

Любая папка Assets должна содержать: System.Data.dll & MySql.Data.dll (вот и все)

NuGet не требуется.

Однако сообщение об ошибке: «Загрузка сборки скрипта« Активы / Плагины / MySql / System.Data.dll »не удалась!» И на данный момент, по-видимому, он не может ссылаться на connectionString из app.config, как это мог бы делать ваш обычный C # вне Unity. При этом я работаю над поиском реализации app.config в Unity или эквивалентной альтернативы.


UPDATE:

Кроме пары досадных ошибок загрузки dll в Unity, которые ни на что не влияют - кроме как раздражать меня и тратить пару байтов ОЗУ на секунду (смеется, нет); Все работает хорошо, и я помню, что причина, по которой меня не беспокоит подключение моего приложения напрямую к моей базе данных, заключается в том, что ЕДИНСТВЕННЫЕ разрешения, которые будут иметь пользователи, это разрешение на выполнение, поэтому все процедуры будут храниться на сервере (через хранимые процедуры) и, таким образом, защищаться. база данных против любых потенциальных атак, даже если кашель кашель когда кашель хм, пользователь решает "декомпилировать" (это даже слово ...? хе) мое приложение.


Окончательное обновление:

Как я писал здесь ;

Мне потребовалась неделя, чтобы наконец понять это ...

Вам необходимо использовать:

I18N.dll
I18N.West.dll
I18N.*.dll (Optional, they are region specific)
System.Data.dll

из C: \ Program Files \ Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0

НЕ путь BleedingEdge. Тогда это будет работать без ошибок [И в Builds] ... подтверждено в последнем Unity 2018.2.14f1 Поместить в папку «Ресурсы» - проект также должен быть настроен на .Net 4.0

...