【问题标题】:Unable to find type or namespace of imported DLL找不到导入的 DLL 的类型或命名空间
【发布时间】: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,这可能是个问题吗?

我尝试过的各种事情:

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

  1. 还尝试启用编译不安全代码(以防万一),如 Unity documentation 中所示,但也不起作用。

  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 并没有出现在那里,就像它为他所做的那样。

【问题讨论】:

  • 在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 本身填充的,不能手动完成。

标签: c# unity3d dll dllimport


【解决方案1】:

我下载的是dll,可惜这是一个混装,看图,Unity不支持。

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

  • 构建和使用native plugins

  • 使用smileNET.dll 创建另一个C# 程序并与Unity 程序通信。

【讨论】:

  • 这是否意味着我必须在每个 C# 文件中使用 [DllImport ("PluginName")] 来使用此 dll 中的函数?
  • 并非无处不在,但您需要创建一个包装文件并在其中导入必要的函数。
  • 我支持这个答案。您需要编写自己的 C# 托管 dll 来包装微笑 dll 中所需的功能。然后在你的 Unity 项目中导入这两个 dll,只使用你自己的,以间接使用微笑库。
猜你喜欢
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 2010-10-15
  • 2017-07-12
  • 2011-05-13
  • 1970-01-01
相关资源
最近更新 更多