使用当前的microsoft / aspnetcore-build:2.0(或simimarly标签2.0.2)Docker容器映像,构建一个简单的ASP.NET Core应用程序总是需要至少20秒。
当我开始知道msbuild的下一个版本将专注于主要的性能改进时,我试了一下。除了当前的Visual Studio 2017 15.5 Preview(15.5.0版本1.0)之外,还有msbuild的15.5.113.63837版本。事实上,这个版本只需要10秒钟来构建一个简单的应用程序,这是一个令人印象深刻的改进!
如何在我的Dockerfile管道中集成最新版本的msbuild?用最新的msbuild连接当前的dotnet 2.0.2 sdk是否容易?也许有一个特定的标签可以真正获得最新的msbuild / dotnet sdk?
我的机器规格:
答案 0 :(得分:2)
如何在我的Dockerfile管道中集成最新版本的msbuild?
您可以使用 Dockerfile 将Build Tools安装到Docker容器中。 如下面的示例代码:
# ENV TEST_CONTAINER=1 \
VS_BUILDTOOLS_URI=https://aka.ms/vs/15/release/799c44140/vs_buildtools.exe \
VS_BUILDTOOLS_SHA256=FA29EB83297AECADB0C4CD41E54512C953164E64EEDD9FB9D3BF9BD70C9A2D29 \
Download vs_buildtools.exe
RUN $ErrorActionPreference = 'Stop'; \
$ProgressPreference = 'SilentlyContinue'; \
$VerbosePreference = 'Continue'; \
Invoke-WebRequest -Uri $env:VS_BUILDTOOLS_URI -OutFile C:\vs_buildtools.exe; \
if ((Get-FileHash -Path C:\vs_buildtools.exe -Algorithm SHA256).Hash -ne $env:VS_BUILDTOOLS_SHA256) { throw 'Download hash does not match' }
# Install Visual Studio Build Tools
RUN $ErrorActionPreference = 'Stop'; \
$VerbosePreference = 'Continue'; \
$p = Start-Process -Wait -PassThru -FilePath C:\vs_buildtools.exe -ArgumentList '--quiet --nocache --wait --installPath C:\BuildTools'; \
if ($ret = $p.ExitCode) { c:\collect.exe; throw ('Install failed with exit code 0x{0:x}' -f $ret) }
您可以将VS_BUILDTOOLS_URI
更改为最新版msbuild的下载路径。
有关详细信息,请参阅Install Build Tools into a Container和3 Steps to MSBuild with Docker。