web-dev-qa-db-ja.com

Visual StudioをWindowsコンテナにインストールすることは可能ですか

Visual Studioの任意のバージョンをWindowsサーバーの Windows Container にインストールすることはできますか?

動機は、継続的な統合システムでソフトウェアを構築するためにWindowsコンテナを使用して、ビルド環境を標準化することです。

51
Jifeng Zhang

Visual Studioは 公式にはサポートされていません のように見えますが、これを行うことができるのは本当に素晴らしいことです。やってみよう:

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 installator引数を使用して、ビルドに正確に必要なコンポーネントを指定する必要があります。これらはGUIに表示されるワークロードとコンポーネントに対応します。 ドキュメントを参照してください。

20

開発者が作業環境を簡単にセットアップできるようにする場合は、コンテナ内でIDEを実行するのが理にかなっています。

コンテナ( https://grigio.org/visual_studio_code_docker/ )またはEclipse( https://rgrunber.wordpress.com/2016/01/26/Eclipse-inside-a-docker-container / )。 Visual Studioはかなり似た動作をするはずです

4
Alex Lungu

現在、WindowsコンテナにはGUIアプリは含まれていません。制限はDockerではなくMicrosoftにあります。

たとえば、Windows Server Coreコンテナでメモ帳を実行するなどの簡単な方法を試してください。プロセスは起動しますが、GUIは表示されません。

Notepad launched, but no GUI shows up

2
xav

ビジュアルビルドチェーンを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"
1
mpromonet

MSがコンテナ内のVSのサポートを計画していないという記録のために、あなたが持っている最良の代替手段はMsBuildです。数か月前は可能でしたが、VSの最新バージョンでは不可能です。ソース: vsts-agents

1
Judavi

この時点で最善の策は、 Visual Studioビルドツール を使用することです。

0
carlowahlstedt