5
我需要一個Dockerfile的工作示例來創建.NET構建服務器鏡像。設置碼頭工MS構建服務器鏡像
不管我安裝,我得到以下錯誤,當試圖建立我的項目與容器:
錯誤MSB3644:爲框架的引用程序集」 .NETFramework,版本= v4.5.2"沒有找到。要解決此問題,請爲此框架版本安裝SDK或Targeting Pack,或將您的應用程序重定向到您安裝了SDK或Targeting Pack的框架版本。請注意,程序集將從全局程序集緩存(GAC)中解析出來,並將用於代替引用程序集。因此,您的程序集可能無法正確定位您想要的框架。
我現在Dockerfile看起來是這樣的:
# escape=`
FROM microsoft/dotnet-framework:4.6.2
MAINTAINER [email protected]
SHELL ["powershell"]
RUN New-Item -ItemType directory -Path "C:\tools"
WORKDIR C:\tools\
RUN Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/p/?linkid=845298" -OutFile "winsdksetup.exe" -UseBasicParsing
RUN .\winsdksetup.exe /q /norestart
# Note: Install .Net 4.5.2
RUN Invoke-WebRequest -Uri "https://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe" -OutFile "NDP452-KB2901907-x86-x64-AllOS-ENU.exe" -UseBasicParsing
RUN .\NDP452-KB2901907-x86-x64-AllOS-ENU.exe /q /norestart
# Note: Install .Net 4.6.2
RUN Invoke-WebRequest -Uri "https://download.microsoft.com/download/F/9/4/F942F07D-F26F-4F30-B4E3-EBD54FABA377/NDP462-KB3151800-x86-x64-AllOS-ENU.exe" -OutFile "NDP462-KB3151800-x86-x64-AllOS-ENU.exe" -UseBasicParsing
RUN .\NDP462-KB3151800-x86-x64-AllOS-ENU.exe /q /norestart
# Note: Install .Net 4.6 Targeting Pack
RUN Invoke-WebRequest -Uri "https://download.microsoft.com/download/C/3/A/C3A5200B-D33C-47E9-9D70-2F7C65DAAD94/NDP46-KB3045557-x86-x64-AllOS-ENU.exe" -OutFile "NDP46-KB3045557-x86-x64-AllOS-ENU.exe" -UseBasicParsing
RUN .\NDP46-KB3045557-x86-x64-AllOS-ENU.exe /q /norestart
RUN Invoke-WebRequest "https://download.microsoft.com/download/A/6/3/A637DB94-8BA8-43BB-BA59-A7CF3420CD90/vs_BuildTools.exe" -OutFile "vs_buildtools.exe" -UseBasicParsing
RUN .\vs_buildtools.exe --add Microsoft.VisualStudio.Workload.MSBuildTools --quiet --wait
# Note: Add .NET + ASP.NET
RUN Install-WindowsFeature NET-Framework-45-ASPNET ; `
Install-WindowsFeature Web-Asp-Net45
# Note: Add NuGet
RUN Invoke-WebRequest "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -OutFile "C:\tools\nuget.exe" -UseBasicParsing
# Note: Add NUnit
RUN Invoke-WebRequest "https://github.com/nunit/nunit-console/releases/download/3.6.1/NUnit.Console-3.6.1.zip" -OutFile "NUnit.Console-3.6.1.zip" -UseBasicParsing
RUN Expand-Archive "NUnit.Console-3.6.1.zip" -DestinationPath "C:\tools\nunit"
# Note: Add DotNet Core
RUN Invoke-WebRequest "https://download.microsoft.com/download/E/7/8/E782433E-7737-4E6C-BFBF-290A0A81C3D7/dotnet-dev-win-x64.1.0.4.zip" -OutFile "dotnet-dev-win-x64.1.0.4.zip" -UseBasicParsing
RUN Expand-Archive "dotnet-dev-win-x64.1.0.4.zip" -DestinationPath "C:\tools\dotnet"
# Note: Add to PATH
RUN setx PATH '%PATH%;C:\tools;C:\tools\dotnet;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin'
RUN setx MSBuildSDKsPath 'C:\tools\dotnet\sdk\1.0.4\Sdks'
這到底是怎麼失蹤了?
謝謝!我不知道你需要安裝所有的定位包。我認爲他們是向後兼容的。 – jonasm