【问题标题】:install .net framework 4.7.2 in docker在 docker 中安装 .net framework 4.7.2
【发布时间】:2019-01-11 11:10:29
【问题描述】:

我是 .Net 环境的新手,我正在尝试为我的公司实施 docker。他们之前使用的是 4.5,所以我在 dockerfile 中使用了以下语句:

RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \
Install-WindowsFeature Web-Asp-Net45

现在,我想对框架 4.7.2 做同样的事情 - 我认为如果我运行以下语句,它会起作用:

RUN Install-WindowsFeature NET-Framework-472-ASPNET ; \
Install-WindowsFeature Web-Asp-Net472

但它不是以这种方式工作,而是显示以下错误:

Install-WindowsFeature : ArgumentNotValid: The role, role service, or feature
name is not valid: 'NET-Framework-472-ASPNET'. The name was not found.
At line:1 char:1
+ Install-WindowsFeature NET-Framework-472-ASPNET ; Install-WindowsFeat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (NET-Framework-472-ASPNET:Strin
   g) [Install-WindowsFeature], Exception
    + FullyQualifiedErrorId : NameDoesNotExist,Microsoft.Windows.ServerManager
   .Commands.AddWindowsFeatureCommand

请帮助我。我真的被卡住了,在互联网上找不到任何东西。

【问题讨论】:

    标签: asp.net docker dockerfile .net-framework-version .net-4.7.2


    【解决方案1】:

    您可以使用而不是自己安装 NET-Framework

    来自微软/aspnet

    来自 microsoft/dotnet-framework:4.7.2

    使用已安装 dotnet 框架的图像。

    或您需要的任何版本。

    https://hub.docker.com/u/microsoft/ 对于 docker hub 上的所有图像

    【讨论】:

    • 我也在同一个镜像中使用 IIS,我可以提及 FROM 语句吗?一个是-FROM microsoft/iis,另一个是你提到的,是否允许?
    • 您可以使用多个 FROM 语句,请参阅docs.docker.com/develop/develop-images/multistage-build,通过编译代码并将工件从一个阶段的结果复制到新阶段,您可以使用多个基础映像。
    • 您还可以使用 COPY 从特定的甚至外部图像中获取所需的内容,例如 COPY --from=microsoft/iis:latest 。 .
    • 我也试试。如果它对我有用,肯定会回来感谢你。
    • 可能是 FROM microsoft/dotnet-framework:4.7.2-sdk
    【解决方案2】:

    所以我在网上搜索了一些东西,我发现有一个解决方案,如果我提到在我的 docker 文件中的 powershell 上安装巧克力。这个参考,我收到了来自 anothony chu 的this post

    所以我用了:

    # Install Chocolatey
    RUN @powershell -NoProfile -ExecutionPolicy Bypass -Command "$env:ChocolateyUseWindowsCompression='false'; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    RUN powershell add-windowsfeature web-asp-net45 \
    && choco install dotnet4.7 --allow-empty-checksums -y \
    

    在我的 docker 文件中,现在一切正常。

    【讨论】:

    • 我使用了相同的解决方案并长期坚持安装 dotnetFX。你有这个问题吗?你是怎么解决的?
    • @csamleong - 我已经用上述解决方案解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2022-10-20
    相关资源
    最近更新 更多