【发布时间】:2019-02-27 05:31:06
【问题描述】:
我从page 下载了“smilenet-1.2.1-win64-academic”库,并在我的 Unity 项目中导入了 smileNET.dll。然后我重新启动了我的 Visual Studio,当我尝试使用该库时,它给了我一个错误,即找不到类型或命名空间。我尝试了using Smile; 和using smileNET;,如他们的documentation 文件Hello.cs 中所示,但它不起作用。我尝试了 64 位版本和 32 位版本。我的unity版本是2018.1.8f1 64bit
当我检查下载的dll时,它说>NET版本是v4.0.30319,而我的VS2017正在运行版本4.7.03056,这可能是个问题吗?
我尝试过的各种事情:
- 我也尝试过手动添加引用。添加引用的选项没有出现,所以我点击了项目>参考>分析器,如下所示,然后在顶部菜单中点击
Project>Add References,然后添加了smileNET.dll文件。这样做(暂时)修复了错误。当我关闭我的 VS 时,它问我是否要将更改保存到Chem-o-Crypt.sln Assesmbly-CSharp*,所以我说是的(尽管我怀疑它是否真的保存了)。但是当我重新启动我的 Visual Studio 时,我发现引用消失了,并且再次弹出错误。嗯:/
- 还尝试启用编译不安全代码(以防万一),如 Unity documentation 中所示,但也不起作用。
- 我有另一个文件夹 (
Chem-o-Crypt/Assets/bayesserver-8.3/DotNet/Standard20/),其中包含其他几个工作正常的 dll,所以我将我的 dll 粘贴到那里,但它没有工作。 - 我确实尝试在
Chem-o-Crypt/、Chem-o-Crypt/Plugins、Chem-o-Crypt/Assets、Chem-o-Crypt/Assets/Plugins中添加此 dll,但它似乎很固执且不起作用。 - 在
Chem-o-Crypt\Assets\Plugins\x64中复制了 64 位版本的 dll,在Chem-o-Crypt\Assets\Plugins\x86中复制了 32 位版本,但同样无效。 - 在 Unity 编辑器的根级别复制 dll(例如 C:\Program Files\Unity\Editor)
- This person 得到与我相同的错误。跳到时间 15:21 查看,但我无法使用他的解决方案,因为我的项目浏览器中的东西看起来不同。基本上 dll 并没有出现在那里,就像它为他所做的那样。
【问题讨论】:
-
在VS中打开你的项目,在Solution Explorer中展开{YourProjectName}.CSharp项目的References节点,你能在里面找到smileNET.dll吗?
-
只是为了确定:您究竟是如何将 dll 导入到您的项目中的?你把它放在根文件夹
Plugins下吗? -
你链接的文档也说
The classes defined in SMILE.NET are located in Smile and Smile.Learning namespaces所以不应该是using Smile;或using Smile.Learning吗? -
@derHugo 我使用 Assets>Import new assets 选项导入了它,但 '
using Smile不起作用。 -
@shingo,不,我在那里看不到它,但它们是由 Unity 本身填充的,不能手动完成。