Подтвердить что ты не робот

Можно ли установить Visual Studio в Контейнер Windows?

Можно ли установить любую версию Visual Studio в Контейнер Windows на Windows Server?

Мотивация заключается в том, чтобы использовать Контейнеры Windows для создания программного обеспечения в системах непрерывной интеграции, так что среда сборки стандартизирована.

4b9b3361

Ответ 1

Visual Studio, по-видимому, официально не поддерживается на Core Server, но я согласен, что было бы неплохо сделать это. Давай попробуем:

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"]

помещаю это изображение в lukaslansky/visualstudio-netwebworkload, используйте с осторожностью.)

Выход сборки:

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

Так что это похоже на работу! Вы должны поиграть с этими аргументами --add чтобы указать, какие компоненты вам нужны именно для вашей сборки, они соответствуют --add нагрузкам и компонентам, которые вы видите в GUI. Смотрите документацию.

Ответ 2

Имеет смысл запускать IDE внутри контейнера, если вы хотите упростить настройку рабочих сред для разработчиков.

Вы можете запустить код Visual Studio внутри контейнера (https://grigio.org/visual_studio_code_docker/) или Eclipse (https://rgrunber.wordpress.com/2016/01/26/eclipse-inside-a-docker-container/). Визуальная студия должна работать довольно похоже

Ответ 3

Контейнеры Windows в настоящее время не включают графические приложения. Ограничение на Microsoft, а не на Docker.

Например, попробуйте что-то простое, например, запустить "Блокнот" (в контейнере Windows Server Core). Процесс запускается, но графический интерфейс не отображается.

Запущен Notepad, но не отображается GUI

Ответ 4

Просто для записи MS не планирует поддержку VS внутри контейнеров, лучшая альтернатива, которую вы имеете, это MsBuild. Несколько месяцев назад было возможно, но с последней версией от VS не возможно. Источник: всц-агенты

Ответ 6

Способ установки цепочки визуальных сборок в контейнере Windows может заключаться в использовании шоколадного пакета visualstudio2017buildtools.

Запуск Dockerfile с чем-то вроде:

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"