Where are my project's dlls saved?

I’m looking for the dlls generated by Unity for my code so I can point my editor at them for autocompletion.

I use vim and a linting plugin for it called ale. It instructs you to set a variable to your project’s obj/Debug/ folder path:

This variable defines a list of
external assembly (*.dll) files
required by the mono mcs compiler to
generate a valid module target. The
list is passed the mcs compiler
using the -r: flag.

For example:

" Compile C# programs with the Unity engine DLL file on Mac.
let g:ale_cs_mcsc_assemblies = [
\ '/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll',
\ 'path-to-unityproject/obj/Debug',
\]

However, my when I checked out my Unity project onto a new computer, it does’t have an obj/ folder next to my Assets/ folder.

I’ve tried Assets > Open C# project.

My Assembly-CSharp.csproj has a line that says <OutputPath>Temp\bin\Debug\</OutputPath> but my project’s Temp folder only contains ProcessJobs, UnityLockfile, and two UnityTempFile-* files.

The destination folder changed:

Library/ScriptAssemblies

(Where Library is in the same folder as Assets.)

I guess Unity generates the files to Temp and then moves them into ScriptAssemblies.

It seems like the output folder used is not dependent on Unity version number but something about your project. I only hit this issue when checking out my project on a new PC.