Невозможно найти тип или пространство имен импортированной DLL - PullRequest
0 голосов
/ 27 февраля 2019

Я скачал библиотеку "smilenet-1.2.1-win64-academy" с этой страницы и импортировал smileNET.dll в мой проект Unity.Затем я перезапустил свою визуальную студию, и когда я попытался использовать библиотеку, она выдала мне ошибку, что тип или пространство имен не может быть найдено.Я попытался using Smile; и using smileNET;, как указано в их документации файла Hello.cs, но это не сработало.Я попробовал 64-битную версию, а также 32-битную.Моя версия Unity 2018.1.8f1 64bit

Когда я проверял загруженную dll, он сказал, что> NET версия v4.0.30319, а мой VS2017 работает под управлением 4.7.03056, может ли это быть проблемой?

Различные вещи, которые я пробовал:

  1. Я также пытался вручную добавлять ссылки.Вариант добавления ссылок не появлялся, поэтому я щелкнул «Проект»> «Ссылки»> «Анализаторы», как показано ниже, а затем в верхнем меню щелкнул Project>Add References, а затем добавил файл smileNET.dll.Это исправило ошибку (временно).Когда я закрыл VS, он спросил меня, хочу ли я сохранить изменения в Chem-o-Crypt.sln Assesmbly-CSharp*, поэтому я сказал да (хотя я сомневаюсь, что он действительно был сохранен).Но когда я перезапустил Visual Studio, я обнаружил, что ссылка исчезла, и снова возникла ошибка.meh: /

enter image description here

Также попытался включить компиляцию небезопасного кода (на всякий случай), как показано в документации Unity , но тоже не сработало.

enter image description here

У меня есть другая папка (Chem-o-Crypt/Assets/bayesserver-8.3/DotNet/Standard20/), которая содержит несколько других dll, которые работают нормально, поэтому я вставил туда dll, и она не сработала. Я буквально пытался добавить эту DLL в Chem-o-Crypt/, Chem-o-Crypt/Plugins, Chem-o-Crypt/Assets, Chem-o-Crypt/Assets/Plugins, а что нет, но, кажется, непреклонен и не работает. Скопировано64-битная версия dll в Chem-o-Crypt\Assets\Plugins\x64 и 32-битная версия в Chem-o-Crypt\Assets\Plugins\x86, которая тоже не работала. Скопировал dll на корневой уровень редактора Unity (например, C: \ Program Files \ Unity\ Editor) Этот человек получил ту же ошибку, что и мой.Перейдите ко времени 15:21, чтобы увидеть, но я не могу использовать его решение, поскольку вещи в моем обозревателе проектов выглядят по-другому.По сути, dll там не появляется, как и для него.

1 Ответ

0 голосов
/ 28 февраля 2019

Я загружаю dll, к сожалению, это смешанная сборка, см. Рисунок, который не поддерживается Unity.

unmanaged

Затем некоторые обходные путиможет быть:

  • Сборка и использование собственных плагинов

  • Создание другой программы на C # с использованием smileNET.dll и взаимодействие с Unityпрограмма.

...