web-dev-qa-db-de.com

Ist es möglich, Visual Studio in einem Windows-Container zu installieren

Kann ich eine beliebige Version von Visual Studio in einem Windows-Container auf einem Windows Server installieren?

Die Motivation ist, Windows-Container zum Erstellen von Software in kontinuierlichen Integrationssystemen zu verwenden, sodass die Build-Umgebung standardisiert wird.

45
Jifeng Zhang

Visual Studio scheint nicht offiziell unterstützt zu werden auf Core Server, aber ich stimme zu, dass es wirklich schön wäre, dies tun zu können. Lass es uns versuchen:

FROM Microsoft/windowsservercore:10.0.14393.1715
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"]

(Ich drücke dieses Bild in lukaslansky/visualstudio-netwebworkload , mit Vorsicht verwenden.)

Ausgabe des Builds ist:

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

Das scheint also zu funktionieren! Sie sollten mit diesen --add Installator-Argumenten spielen, um anzugeben, welche Komponenten Sie genau für Ihren Build benötigen. Sie entsprechen den Workloads und Komponenten, die in der GUI angezeigt werden. Siehe die Dokumentation.

16

Es ist sinnvoll, IDE in einem Container auszuführen, wenn Sie die Arbeitsumgebungen für Entwickler einfacher einrichten möchten. 

Sie können Visual Studio-Code in einem Container ( https://grigio.org/visual_studio_code_docker/ ) oder Eclipse ( https://rgrunber.wordpress.com/2016/01/26/Eclipse-inside-) ausführen. a-docker-container/ ). Visual Studio sollte ähnlich funktionieren 

4
Alex Lungu

Windows-Container enthalten derzeit keine GUI-Apps. Die Einschränkung gilt für Microsoft, nicht für Docker.

Versuchen Sie zum Beispiel einen einfachen Vorgang, beispielsweise den Editor (im Windows Server Core-Container). Der Prozess wird gestartet, aber es wird keine GUI angezeigt.

 Notepad launched, but no GUI shows up

4
xav

Nur für das Protokoll: MS plant nicht die Unterstützung von VS in Containern. Die beste Alternative ist MsBuild. Vor einigen Monaten war es möglich, aber mit der neuesten Version von VS ist dies nicht möglich. Quelle: vsts-agents

1
Judavi

Eine Möglichkeit, eine visuelle Build-Kette in einem Windows-Container zu installieren, besteht in der Verwendung von Chocolatey-Paket visualstudio2017buildtools .

Starten Sie Dockerfile mit etwas wie:

FROM Microsoft/dotnet-framework
Shell ["powershell"]
RUN Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
RUN choco install -y --no-progress visualstudio2017buildtools
RUN choco install -y --no-progress visualstudio2017-workload-vctools
Shell ["cmd", "/S", "/C"]
RUN call C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat
0
mpromonet

Zu diesem Zeitpunkt empfiehlt es sich, Visual Studio Build Tools zu verwenden. 

0
carlowahlstedt