• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
Question by SilentSin · Mar 11, 2016 at 12:51 AM · builddllnotfoundexception

Application works fine in the Editor, but cant find an external DLL in a build

TL;DR: libvlc can't be loaded in a build because its dependencies can't be loaded. But Dependency Walker shows a tree with hundreds of DLLs in it, so I don't think I should just copy them all into the project.


I'm using HyperVLC, which is a C# wrapper for libvlc.dll, which is part of VLC media player.

The HyperVLC example includes the following function:

 [DllImport("kernel32.dll", SetLastError = true)]
 public static extern bool SetDllDirectory(string lpPathName);

In Awake, I call SetDllDirectory(@"C:\Program Files\VideoLAN\VLC"); which allows the Unity editor to find libvlc.dll without needing to put it in the project, but for some reason it doesn't work in a build (windows standalone), it just gives me "DllNotFoundException: libvlc".

I've also tried putting all the VLC DLLs in the project (next to Assets and in Assets/Plugins), but that doesn't work either.

Googling has led me to believe that the error actually means that the dependencies of libvlc.dll can't be loaded rather than the DLL itself. So I got Dependency Walker to take a look at it, which gave me the following tree:

 - LIBVLC.DLL
     - LIBVLCCORE.DLL
         - ADVAPI.DLL
             - About 20 more DLLs, some with more dependencies.
         - KERNEL32.DLL
             - NTDLL.DLL
         - MSVCRT.DLL
         - SHELL32.DLL
             - About 100 more DLLs, some with more dependencies.
         - USER32.DLL
             - About 10 more DLLs, some with more dependencies.
         - WINMM.DLL
             - About 10 more DLLs, some with more dependencies.
         - WS2_32.DLL
             - About 20 more DLLs, some with more dependencies.
     - KERNEL32.DLL
         - About 40 more DLLs.
     - MSVCRT.DLL
         - About 40 more DLLs.

Most of those sound like Windows DLLs, so I don't understand how the editor can find them perfectly fine while a build can't. And if this is actually the problem, I don't understand why the editor wouldn't just copy all the required DLLs into the build when it already knows where they are.

How can I fix this problem?

Comment

People who like this

0 Show 0
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

50 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

MacOS Unity Build Vivox missing DLL 0 Answers

Input.GetMouseButtonDown() translates automatically to Mobile Platforms? 2 Answers

Slow scene 0 Answers

Memory usage for WebGL Build 0 Answers

really weird unity behavior please HELP???? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges