Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何在Docker映像中应用最新的msbuild?_Visual Studio_Performance_Docker_Asp.net Core_Msbuild - Fatal编程技术网

Visual studio 如何在Docker映像中应用最新的msbuild?

Visual studio 如何在Docker映像中应用最新的msbuild?,visual-studio,performance,docker,asp.net-core,msbuild,Visual Studio,Performance,Docker,Asp.net Core,Msbuild,使用当前的microsoft/aspnetcore构建:2.0(或类似标记2.0.2)Docker容器映像,即使构建一个简单的ASP.NET Core应用程序也至少需要20秒 当我知道msbuild的下一个版本将重点关注主要的性能改进时,我尝试了它。除了当前的Visual Studio 2017 15.5预览版(15.5.0版本1.0)之外,还有msbuild的15.5.113.63837版本。事实上,这个版本最多只需要10秒钟就可以构建一个简单的应用程序,这是一个令人印象深刻的改进 为了在Do

使用当前的microsoft/aspnetcore构建:2.0(或类似标记2.0.2)Docker容器映像,即使构建一个简单的ASP.NET Core应用程序也至少需要20秒

当我知道msbuild的下一个版本将重点关注主要的性能改进时,我尝试了它。除了当前的Visual Studio 2017 15.5预览版(15.5.0版本1.0)之外,还有msbuild的15.5.113.63837版本。事实上,这个版本最多只需要10秒钟就可以构建一个简单的应用程序,这是一个令人印象深刻的改进

为了在Dockerfile管道中集成此最新版本的msbuild,我应该如何继续?用最新的msbuild连接当前的dotnet 2.0.2 sdk容易吗?可能有一个特定的标记可用于真正获取最新的msbuild/dotnet sdk

我的机器的规格:

  • Windows版本:10.0.15063内部版本15063
  • 系统SKU:LENOVO_MT_20CJ_BU_Think_FM_ThinkPad T550
  • 已安装的物理内存(RAM):32,0 GB
  • 处理器:英特尔(R)核心(TM)i7-5600U CPU@2.60GHz,2594MHz,2核,4逻辑处理器
  • 磁盘型号:三星SSD 840 EVO 500GB
为了在Dockerfile管道中集成此最新版本的msbuild,我应该如何继续

您可以使用Dockerfile将构建工具安装到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的下载路径


有关更多详细信息,请参阅和。

您是否有此15.5预览版本的url?如果我将您建议的值指定给VS\u BUILDTOOLS\u URI,显然它将不起作用;因为它只是一个html页面。将预览位放入容器的最佳策略是什么?