I’ve made some progress getting this working after finding the page https://wiki.blender.org/index.php/User:Ideasman42/BlenderAsPyModule
I followed these instructions to move the files to the correct places
copy bin\bpy.pyd C:\Python36\Lib\site-packages\
copy bin\*.dll C:\Python36\Lib\site-packages\
xcopy /E bin\2.79 C:\Python36\
After doing this I’m able to get autocompletion working great in the Python console in Visual Studio, but in actual code files it doesn’t find everything. I think the reason it’s not working has something to do with the note on that wiki page:
Unlike on *nix C:\Python36\2.79 is not in the site packages, this is because of a difference in how Windows finds the scripts path and should eventually be fixed.
It’s not clear where intellisense is looking for these things, but it doesn’t seem to be the same place as python running from the console.