Is it possible to install Visual Studio in a Windo

2019-03-09 19:39发布

Is it possible to install any version of Visual Studio in a Windows Container on a Windows Server?

The motivation is to use Windows Containers for building software in continuous integration systems, so that the build environment is standardized.

6条回答
姐就是有狂的资本
2楼-- · 2019-03-09 20:00

Just for the record MS is not planning support VS inside containers, the best alternative that you have is MsBuild. Some months ago was possible but with the latest version from VS is not possible. Source: vsts-agents

查看更多
Juvenile、少年°
3楼-- · 2019-03-09 20:05

A way to install visual build chain in a windows container could be to use chocolatey package visualstudio2017buildtools.

Starting Dockerfile with something like :

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
查看更多
Ridiculous、
4楼-- · 2019-03-09 20:09

Visual Studio seems to not be supported officially on Core Server, but I agree it would be really nice to be able to do this. Let's try:

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

(I'm pushing this image into lukaslansky/visualstudio-netwebworkload, use with caution.)

Output of the build is:

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

So this seems to work! You should play with those --add installator arguments to specify what components you need precisely for your build, they correspond to workloads and components you see in the GUI. See the documentation.

查看更多
【Aperson】
5楼-- · 2019-03-09 20:13

Your best bet at this point is to use Visual Studio Build Tools.

查看更多
Deceive 欺骗
6楼-- · 2019-03-09 20:16

Windows Containers do not currently include GUI apps. The limitation is on Microsoft, not on Docker.

For example try something simple like running Notepad (in Windows Server Core container). The process is launched but no GUI shows up.

Notepad launched, but no GUI shows up

查看更多
\"骚年 ilove
7楼-- · 2019-03-09 20:21

It does make sense to run IDE inside a container if you want to make it easy to setup the work environments for developers.

You can run Visual Studio Code inside a container (https://grigio.org/visual_studio_code_docker/) or Eclipse (https://rgrunber.wordpress.com/2016/01/26/eclipse-inside-a-docker-container/). Visual studio should work rather similar

查看更多
登录 后发表回答