I downloaded the "smilenet-1.2.1-win64-academic" library from this page and imported the smileNET.dll in my Unity project. Then I restarted my visual studio, and when I tried to use the library, it gave me an error that the type or namespace could not be found. I tried using Smile; and using smileNET; as indicated in their documentation file Hello.cs but it did not work. I tried 64 bit version as well as 32 bit one. My unity version is 2018.1.8f1 64bit
When I inspected the downloaded dll, it said that the >NET version is v4.0.30319 while my VS2017 is running version 4.7.03056, could that be a problem?
Various things that I have tried:
- I also tried manually adding references. The option to add references was not appearing, so I clicked on Project>Referneces>Analyzers as shown below and then in the top menu clicked on
Project>Add Referencesand then added the smileNET.dll file. Doing so fixed the error (temporarily). When I closed my VS it asked me if I want to save the changes toChem-o-Crypt.sln Assesmbly-CSharp*, so I said yes (although I doubt if it was really saved). But when I restarted my Visual Studio, I found that the reference was gone, and error popped up again. meh :/
- Also tried enabling compiling of unsafe code (just in case) as shown in the Unity documentation, but did not work either.
- I have another folder (
Chem-o-Crypt/Assets/bayesserver-8.3/DotNet/Standard20/) which contains several other dlls that are working fine, so I pasted my dll there and it did not work. - I have literally tried adding this dll in
Chem-o-Crypt/,Chem-o-Crypt/Plugins,Chem-o-Crypt/Assets,Chem-o-Crypt/Assets/Pluginsand what not, but it seems to be adamant and not working. - Copied the 64 bit version of dll in
Chem-o-Crypt\Assets\Plugins\x64and 32 bit version inChem-o-Crypt\Assets\Plugins\x86which did not work either. - Copied the dll at the root level of the Unity editor (e.g. C:\Program Files\Unity\Editor)
- This person was getting the same error as mine. Skip to time 15:21 to see, but I am not able to use his solution as the things in my project explorer are appearing differently. Basically the dll is not showing up there, just like it did for him.
I download the dll, unfortunately this is a mixed assembly, see the picture, which is not supported by Unity.
Then some workaround can be:
Build and use native plugins
Create another C# program using smileNET.dll and communicate with Unity program.
来源:https://stackoverflow.com/questions/54898629/unable-to-find-type-or-namespace-of-imported-dll


