Install .NET Framework 3.5 on Windows Server Core Docker(在 Windows Server Core Docker 上安装 .NET Framework 3.5)
问题描述
我正在努力在 docker 容器上安装 .NET Framework 3.5.我已经安装了 4.5,但需要 3.5 才能运行一项服务.这是我的 Dockerfile:
FROM microsoft/windowsservercore外壳 ["powershell"]运行安装-WindowsFeature NET-Framework-45-ASPNET;安装-WindowsFeature Web-Asp-Net45运行 dism/online/enable-feature/featurename:NetFX3/all复制启动启动复制服务服务运行C:WindowsMicrosoft.NETFrameworkv4.0.30319installutil.exe"WCS.WindowsService.exe运行 mkdir 临时日志入口点 C:StartupsetupBatch.bat复制 ContainerApi ContainerApiRUN Remove-WebSite -Name '默认网站'运行新网站 -Name 'ContainerApi' -Port 80 -PhysicalPath 'C:ContainerApi' -ApplicationPool '.NET v4.5'曝光 80CMD ["ping", "-t", "localhost"]
当我尝试构建它时,它在 RUN dism
错误:0x800f081f
找不到源文件.
使用源"选项指定恢复功能所需的文件的位置.有关指定源位置的详细信息,请参阅
- 将 sxs.zip 文件复制到我的容器中.我使用图像的 dockerfile 复制了它.
- 将文件解压到容器中的 C:sourcessxs 文件夹中.
使用 Install-WindowsFeature powershell 命令安装该功能.
Install-WindowsFeature -Name NET-Framework-Features -Source C:sourcessxs -Verbose
希望这会有所帮助.我还发现以下博客有助于理解按需功能.https://blogs.technet.microsoft.com/askcore/2012/05/14/windows-8-and-net-framework-3-5/
I am struggling to install .NET Framework 3.5 on docker container. I have 4.5 installed already, but need 3.5 to run one Service. Here is my Dockerfile:
FROM microsoft/windowsservercore
SHELL ["powershell"]
RUN Install-WindowsFeature NET-Framework-45-ASPNET ;
Install-WindowsFeature Web-Asp-Net45
RUN dism /online /enable-feature /featurename:NetFX3 /all
COPY Startup Startup
COPY Service Service
RUN "C:WindowsMicrosoft.NETFrameworkv4.0.30319installutil.exe" WCS.WindowsService.exe
RUN mkdir TempLogs
ENTRYPOINT C:StartupsetupBatch.bat
COPY ContainerApi ContainerApi
RUN Remove-WebSite -Name 'Default Web Site'
RUN New-Website -Name 'ContainerApi' -Port 80
-PhysicalPath 'C:ContainerApi' -ApplicationPool '.NET v4.5'
EXPOSE 80
CMD ["ping", "-t", "localhost"]
When I try to build this, it gives me error on line RUN dism
Error: 0x800f081f
The source files could not be found.
Use the "Source" option to specify the location of the files that are required to restore the feature. For more information on specifying a source location, see http://go.microsoft.com/fwlink/?LinkId=243077.
Now, even if I run dism /online /enable-feature /featurename:NetFX3 /all
inside the docker (docker exec) it will still give me the same error.
Anyone with any help?
I took the following steps to resolve this issue:
- Got hold of the Windows Server 2016 Core ISO file. Mounted the file on local computer.
- Extracted the {mount}:/sources/sxs folder into a zip file (sxs.zip). Ensure that the .NET Framework 3.5 cab file (microsoft-windows-netfx3-ondemand-package.cab) is present in the sxs folder. In my case, this was the only file present in the sxs folder.
- Copy the sxs.zip file to my container. I copied it using the dockerfile of the image.
- Unzip the file to C:sourcessxs folder in the container.
Used the Install-WindowsFeature powershell command to install the feature.
Install-WindowsFeature -Name NET-Framework-Features -Source C:sourcessxs -Verbose
Hope this helps. I also found the following blog useful in understanding the on-demand features. https://blogs.technet.microsoft.com/askcore/2012/05/14/windows-8-and-net-framework-3-5/
这篇关于在 Windows Server Core Docker 上安装 .NET Framework 3.5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Windows Server Core Docker 上安装 .NET Framework 3.5
- 在 LINQ to SQL 中使用 contains() 2022-01-01
- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01
- 使用 rss + c# 2022-01-01
- 带问号的 nvarchar 列结果 2022-01-01
- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01