I’ve been trying to create an offline installer for Visual Studio 2019 but unfortunately, the official Microsoft solution is not very firewall-friendly.
So here is an alternative solution that works well with Windows Firewall whitelist-mode.
Download this collection of the batch files. I have split them into multiple files to make it easier to run them.
Here is the overview of each batch file.
_Step1.bat: It downloads the vs_community.exe
_Step2.bat: It downloads vs_installer.opc
_Step3.bat: It extracts both these files into their respective directory. It’s important to have 7-Zip installed on your PC, otherwise, this step will fail
_Step4.bat: It finally creates the offline installer into the directory written after –layout in the source code. Change the path here to the actual directory where you want to create an offline installation for Visual Studio.
Question #1: What firewall exceptions are required for these batch files to work?
powershell.exe: For _Step1.bat (you can alternatively download that URL yourself to avoid white-listing powershell.exe)
vs_installer_opc\contents\resources\app\layout\setup.exe: For _Step4.bat. It’s a required firewall exception.
Question #2: How do I update the offline installer to include the latest version of Visual Studio
Just run the same batch files again and it will update the offline installer instead of re-downloading everything from the stretch.
- HTTP Web server (Apache/Nginx/Any other)
- trusty-server-cloudimg-amd64-root.tar.gz – Official Ubuntu 14.04 image provided by Microsoft
- trusty-server-cloudimg-amd64-root.tar.gz – Daily Ubuntu 14.04 builds provided by Canonical
- xenial-server-cloudimg-amd64-root.tar.gz – Daily Ubuntu 16.04 builds provided by Canonical
- First enable Windows Subsystem for Linux from “Program and Features” -> “Turn Windows features on or off”
- Restart Windows (MS has a thing for rebooting)
- Download one of the image and host it on your local web server if not done already
- Start Fiddler and enable “Automatic Breakpoints” (Alt+F11)
- Start command prompt and run “lxrun /install /y”
- Switch to Fiddler. You will see a request to “https://go.microsoft.com/fwlink/?LinkID=730581”. Click on “Headers” tab -> Right click on “Location” -> “Edit Header” -> Paste your local link URL (i.e. http://localhost/xenial-server-cloudimg-amd64-root.tar.gz) and click on Save -> Run to Completion
- There will be another request to “http://localhost/xenial-server-cloudimg-amd64-root.tar.gz”. Just click on “Run to completion” this time.
- After some time, there will again another request to download “ubuntu.ico”. Just allow it.
- Create a new user and you are ready to go!
Note for Ubuntu 16.04 users:
There is an issue with “sudo” command in Ubuntu 16.04 build. You will get sudo: no tty present and no askpass program specified. There are two simple possible solutions that I am aware of to fix it.
- Use “sudo -S” each time. Execute
echo $'\n'"alias sudo='sudo -S'" >> ~/.bashrcto create a permanent alias for it
- Set the default user as root. Execute “LxRun.exe /setdefaultuser root” in command prompt to do that