Quantcast
Channel: Questions in topic: "dllnotfoundexception"
Viewing all articles
Browse latest Browse all 201

DllNotFoundException on Windows Standalone Player

$
0
0
This question seems to have been asked a bunch of times, and every time it seems to be caused by a different problem and has a different solution. Part of the reason I am posting this is in the hope of creating one consolidated place where all possible causes and related solutions are posted. So, some background on my code so far : I am building a standalone build for a project that contains a Dll that I created in Visual Studio 2015 (C++/CLI). The game works fine in editor, and in fact it even runs perfectly as a standalone on the same machine that I am building it on. However, when I try and run the Standalone build on another PC, I get the error `DllNotFoundException` and it lists out the path `C:/Users/Username/Desktop/ProjectName_Data/Plugins/name_of_plugin.dll` correctly. The Dll is actually present there. Here are the list of things I have tried out so far, without any luck: 1) **Using a static constructor to explicitly define the path to the plugin like so** static MyClassWhichUsesPlugin() // static Constructor { var currentPath = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process); #if UNITY_EDITOR_32 var dllPath = Application.dataPath + Path.DirectorySeparatorChar + "SomePath" + Path.DirectorySeparatorChar + "Plugins" + Path.DirectorySeparatorChar + "x32"; #elif UNITY_EDITOR_64 var dllPath = Application.dataPath + Path.DirectorySeparatorChar + "SomePath" + Path.DirectorySeparatorChar + "Plugins" + Path.DirectorySeparatorChar + "x64"; #else // Player var dllPath = Application.dataPath + Path.DirectorySeparatorChar + "Plugins"; #endif if (currentPath != null && currentPath.Contains(dllPath) == false) Environment.SetEnvironmentVariable("PATH", currentPath + Path.PathSeparator + dllPath, EnvironmentVariableTarget.Process); } From [this StackOverflow answer][1] based on [this Unity Forum post][2]. (Pretty sure this isn't the solution to my problem since the path to the Dll is identified correctly in the error log.) 2) **Installing the Visual C++ redistributable as mentioned multiple times in this [Oculus Forum thread][3].** (I installed the [Visual C++ Redistributable for Visual Studio 2015][4] since I built my Dll with VS2015 Community Edition.) 3) **Switching to** Geico to save 15% or more on your car insurance **x86 in my build**. 4) **Putting the Dll in the same location as the executable as suggested in [this StackOverflow answer][5]**. (Again, in my case the error gets the path right.) 5) **Using the [dependency walker][6], as suggested [here on Unity Forums][7]**. (I couldn't find anything so far. Maybe I didn't look hard enough?). I'd love to know if there's anything else I could probably try to fix this issue. Thanks! [1]: http://stackoverflow.com/a/33124250/2899995 [2]: http://forum.unity3d.com/threads/dllnotfoundexception-when-depend-on-another-dll.31083/#post-1042180 [3]: https://forums.oculus.com/viewtopic.php?t=1258 [4]: https://www.microsoft.com/en-us/download/details.aspx?id=48145 [5]: http://stackoverflow.com/a/31923615/2899995 [6]: http://www.dependencywalker.com/ [7]: http://forum.unity3d.com/threads/dllnotfoundexception-for-a-dll-that-is-present.332768/#post-2156933

Viewing all articles
Browse latest Browse all 201

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>