Is it possible to install Visual Studio in a Windows Container

前端 未结 5 400
予麋鹿
予麋鹿 2020-12-23 09:33

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

相关标签:
5条回答
  • 2020-12-23 09:45

    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 mcr.microsoft.com/windows/servercore:ltsc2019
    SHELL ["powershell"]
    
    RUN Invoke-WebRequest "https://aka.ms/vs/16/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.

    0 讨论(0)
  • 2020-12-23 09:46

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

    0 讨论(0)
  • 2020-12-23 09:49

    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/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"
    
    0 讨论(0)
  • 2020-12-23 10:02

    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

    0 讨论(0)
  • 2020-12-23 10:05

    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.

    0 讨论(0)
提交回复
热议问题