无法找到导入的DLL的类型或命名空间

问题描述 投票:0回答:1

我从这个page下载了“smilenet-1.2.1-win64-academic”库,并在我的Unity项目中导入了smileNET.dll。然后我重新启动了我的visual studio,当我尝试使用该库时,它给了我一个错误,即无法找到类型或命名空间。我在他们的using Smile;文件Hello.cs中尝试了using smileNET;documentation,但它没有用。我尝试了64位版本以及32位版本。我的统一版本是2018.1.8f1 64bit

当我检查下载的dll时,它说> NET版本是v4.0.30319,而我的VS2017正在运行版本4.7.03056,这可能是个问题吗?

我尝试过各种各样的事情:

  1. 我也试过手动添加引用。添加引用的选项没有出现,所以我点击了Project> Referneces> Analyzers,如下所示,然后在顶部菜单中点击Project>Add References然后添加了smileNET.dll文件。这样做可以修复错误(暂时)。当我关闭我的VS它问我是否要将更改保存到Chem-o-Crypt.sln Assesmbly-CSharp*,所以我说是(虽然我怀疑它是否真的被保存)。但是当我重新启动Visual Studio时,我发现引用已经消失,并且错误再次弹出。 meh:/

enter image description here

  1. 还试图编译不安全的代码(以防万一),如Unity documentation所示,但也无法正常工作。

enter image description here

  1. 我有另一个文件夹(Chem-o-Crypt/Assets/bayesserver-8.3/DotNet/Standard20/),其中包含其他几个工作正常的dll,所以我粘贴了我的dll并且它不起作用。
  2. 我真的尝试在Chem-o-Crypt/Chem-o-Crypt/PluginsChem-o-Crypt/AssetsChem-o-Crypt/Assets/Plugins中加入这个dll而不是什么,但它似乎是坚定的而且不起作用。
  3. 复制了Chem-o-Crypt\Assets\Plugins\x64中的64位版本的dll和Chem-o-Crypt\Assets\Plugins\x86中的32位版本,这两种版本都没有用。
  4. 在Unity编辑器的根级别复制dll(例如C:\ Program Files \ Unity \ Editor)
  5. This person和我的错误一样。跳到时间15:21看,但我无法使用他的解决方案,因为我的项目资源管理器中的东西出现的方式不同。基本上dll没有出现在那里,就像它对他一样。
c# unity3d dll dllimport
1个回答
0
投票

我下载了dll,遗憾的是这是一个混合程序集,请参阅Unity不支持的图片。

unmanaged

然后一些解决方法可以是:

  • 建立和使用native plugins
  • 使用smileNET.dll创建另一个C#程序并与Unity程序通信。
© www.soinside.com 2019 - 2024. All rights reserved.