visual studio descargar community code visual-studio docker continuous-integration containers windows-server

visual-studio - code - descargar visual studio 2015 community



¿Es posible instalar Visual Studio en un contenedor de Windows? (5)

Los Contenedores de Windows actualmente no incluyen aplicaciones GUI. La limitación está en Microsoft, no en Docker.

Por ejemplo, intente algo simple como ejecutar el Bloc de notas (en el contenedor de Windows Server Core). El proceso se inicia pero no aparece GUI.

¿Es posible instalar alguna versión de Visual Studio en un contenedor de Windows en un servidor de Windows?

La motivación es utilizar Windows Containers para crear software en sistemas de integración continua, de modo que el entorno de construcción esté estandarizado.


Solo para el registro, MS no está planeando soporte VS dentro de contenedores, la mejor alternativa que tiene es MsBuild. Hace algunos meses era posible pero con la última versión de VS no es posible. Fuente: vsts-agents



Una forma de instalar la cadena de compilación visual en un contenedor de Windows podría ser usar el paquete de chocolate visualstudio2017buildtools .

Iniciando Dockerfile con algo como:

FROM microsoft/windowsservercore RUN powershell.exe -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString(''https://chocolatey.org/install.ps1''))" && SETX PATH "%PATH%;%ALLUSERSPROFILE%/chocolatey/bin" RUN choco install -y visualstudio2017buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --installPath C:/BuildTools" || IF "%ERRORLEVEL%"=="3010" EXIT 0 RUN call "C:/BuildTools/VC/Auxiliary/Build/vcvars64.bat"


Visual Studio parece no ser compatible oficialmente con Core Server, pero estoy de acuerdo en que sería realmente bueno poder hacer esto. Intentemos:

FROM mcr.microsoft.com/windows/servercore:ltsc2019 SHELL ["powershell"] RUN Invoke-WebRequest "https://aka.ms/vs/15/release/vs_community.exe" -OutFile "$env:TEMP/vs_community.exe" -UseBasicParsing RUN & "$env:TEMP/vs_community.exe" --add Microsoft.VisualStudio.Workload.NetWeb --quiet --wait --norestart --noUpdateInstaller | Out-Default RUN & ''C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe'' /version CMD ["powershell"]

(Estoy introduciendo esta imagen en lukaslansky/visualstudio-netwebworkload , utilícela con precaución).

La salida de la compilación es:

[...] Microsoft (R) Build Engine version 15.3.409.57025 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved.

¡Así que esto parece funcionar! Debería jugar con esos argumentos de --add para especificar qué componentes necesita precisamente para su compilación, se corresponden con las cargas de trabajo y los componentes que ve en la GUI. Ver la documentación.