我是.Net Environment的新手,我正在尝试为我的公司实施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
请帮助我。我真的很困,无法在互联网上找到任何东西。
答案 0 :(得分:1)
您可以使用
来代替自己安装NET Framework。FROM microsoft / aspnet
或
FROM microsoft / dotnet-framework:4.7.2
使用已安装dotnet框架的图像。
或您需要的任何版本。
请参见https://hub.docker.com/u/microsoft/ 对于docker hub上的所有图像
答案 1 :(得分:1)
因此,我在网上搜索了一些东西,然后发现有一种解决方案,如果我提到要在docker文件中的powershell上安装Chocolatey。我已经从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文件中,现在一切正常。
答案 2 :(得分:0)
我没有为您提供答案,但是建议您找到与您公司使用的源代码和库兼容的.net核心版本; 我认为使用linux容器而不是Windows会更容易