Creando un instalador offline para Visual Studio

Habitualmente trabajo con mas de una computadora para desarrollo y ademas hago reinstalaciones periodicas del sistema operativo, por lo que termino ocupando bastante tiempo descargando e instalando Visual Studio. Para facilitar esto, tenemos la posibilidad de utilizar el mismo archivo instalador que inicia el proceso interactivo de instalacion y agregando parametros podemos obtener una copia local de todos los archivos necesarios asi como automatizar los flujos o paquetes que deseamos instalar. Tambien podemos actualizar nuestro instalador offline para siempre tener la ultima version disponible y no tener que realizar todo el proceso cuando se publican nuevas versiones.

Creando nuestro instalador offline

En este post voy a detallar paso a paso como realizar todas estas operaciones y voy a utilizar la version 2022 Community preview al momento de escribir esto. Otras versiones funcionan en forma similar, descargando el archivo instalador de dicha version. Siempre se pueden consultar los parametros ejecutando en la linea de comandos el archivo instalador con el parametro -? lo cual nos abrira una pagina web local temporal con toda la informacion

Primero necesitamos obtener el archivo de instalacion desde la pagina de descarga de Visual Studio y guardarlo en un directorio local, en mi caso utilizare c:\VSOffline

Luego debemos abrir una ventana de comandos en la carpeta en donde descargamos el instalador y ejecutar la siguiente instruccion que iniciara el (largo) proceso de descarga

VisualStudioSetup --layout C:\VSOffline --lang en-US --add Microsoft.VisualStudio.Workload.NetCrossPlat --add Microsoft.VisualStudio.Workload.Universal --includeRecommended --includeOptional

Parametros utilizados

–layout es nuestra carpeta destino

–lang el lenguage a descargar, los posibles valores son los de la columna BCP 47 en el siguiente enlace

–includeRecommended & –includeOptional asegura que se descargan todos los archivos que necesitaremos al realizar la instalacion

-add los flujos que queremos esten incluidos en nuestro instalador. En mi caso estoy interesado solo en los flujos relacionados a desarrollo cross platform. Se puede seleccionar cualquiera de los disponibles, utilizando la lista de posibles valores que se encuentra aqui.

Actualizar nuestro instalador offline

Si ya tenemos nuestra carpeta con los archivos de instalacion y deseamos actualizar a la ultima version cuando existen cambios, solo debemos volver a ejecutar la misma instruccion que usamos originalmente.

Instalar visual studio

En la misma ventana de comandos en la que ejecutamos el comando para descarga, corremos la siguiente instruccion

VisualStudioSetup --passive --norestart --includeOptional

Esto iniciara el proceso de instalacion, como se puede ver en la siguiente captura de pantalla. Los archivos no son descargados nuevamente, solo se verifica que esten disponibles.

Si abrimos el instalador, podemos ver que se instalaron correctamente los flujos deseados


En un proximo post, voy a agregar informacion sobre como se puede automatizar aun mas el proceso y ademas como podemos utilizarlo junto a Windows Sandbox para crear rapidamente entornos de desarrollo repetibles y que se encuentran siempre en el mismo estado incial.

Espero les haya sido de utilidad y les permita configurar sus equipos de desarrollo rapidamente!

External access to your API in development with Conveyor

In my usual workflow, when I’m developing an API with Visual Studio, and I need to access it from a mobile app, I publish the API to Azure or a local IIS server.
I need to do this because, by default, IIS express publish your API with the localhost endpoint, and it can’t be easily used outside the running machine.
I was looking for a quick fix when I found Conveyor, a Visual Studio extension that automatically provides our API’s external access. Additionally, I created an account on their website to enable public access to my API (outside of the local network).
After installing the extension, it would start when I run my project in Debug mode.
In the following screenshot, you can see which ones are the enabled endpoints.

Enabled endpoints


We can also enable the use of certificates for HTTPS access.
A great addition to my toolbox, easy to install and use 😉