Sometimes when I was implementing FMOD into Unity, the integration would work fine for me, but my teammates would have Unity Editor spew out +9999 DllNotFoundException: fmodstudioL
-errors when they pulled the implementation of the FMOD Integration from source control (Git).
Nobody knew why the issue was happening and it was starting to make me hesitant at implementing FMOD in a Unity project, since it started to become equivalent to spending a day or two of just getting the integration to work on all the dev’s machines.
Solution (tl;dr)
The solution was to add this line to our .gitignore
:
# Never ignore DLLs in the FMOD subfolder, so make sure that the FMOD-folder is in the correct path.
!/[Aa]ssets/Plugins/FMOD/**/*.dll
For the full FMOD-Unity-gitignore, see my other FMOD Tip over here:
FMOD Tip - Gitignore for the FMOD Integration in Unity
Cause
In my case I had a “global gitignore”-file installed on my system (for some reason) which was automatically ignoring a bunch of filetypes for all the repos on my computer. One of the file types ignored was .dll
. This made it so whenever I implemented FMOD in a Unity project, it would of course work properly for me, but none of the DLLs would be included in Source Control, ie. my teammates got all the files included in the FMOD Integration except for the DLLs.
So that part in the gitignore file ensured that all the DLLs needed for FMOD to work would be included and pushed to source control, regardless of what settings a user may have in their gitignore_global.txt
-file.
If anyone’s wondering, the location for the global gitignore was this:
C:\Users\<UserName>\Documents\gitignore_global.txt
And here are the contents of the gitignore_global.txt
file, if anyone should need / want it:
#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.dll
*.lib
*.sbr