gpt4 book ai didi

.net - 设置 docker MS 构建服务器镜像

转载 作者:IT老高 更新时间:2023-10-28 21:39:33 28 4
gpt4 key购买 nike

我需要一个用于创建 .NET 构建服务器镜像的 Dockerfile 工作示例。

无论我安装什么,在尝试使用容器构建我的项目时都会收到以下错误:

error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5.2" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.

我当前的 Dockerfile 如下所示:

# escape=`
FROM microsoft/dotnet-framework:4.6.2
MAINTAINER xxx@xxx.com

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'

这里缺少什么?

最佳答案

您的 dockerfile 安装了 4.6 目标包,但没有安装 4.5.2 目标包。

文件需要在

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2

让 MSBuild 正确解决它们

关于.net - 设置 docker MS 构建服务器镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493284/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com