There are a few ways to control access of assemblies.
We protect our assemblies on a license basis, so only workstations with the license are able to run the assembly.
We allow Developers to run the debug build unchecked. We of course keep a tight control on the debug builds. you could put additional checks in the debug builds for more security if necessary. Or issue licenses to the developers.
For our debug builds, we add a license in the debug code wrapped in "#IF DEBUG" to make sure it is not compiled into the release build.
I am not saying this is the best way, but this is the method we use.