【发布时间】:2019-05-26 17:39:42
【问题描述】:
我正在尝试使用 .net 框架 4.7.2 设置 Windows Docker 映像。 由于其他原因,我从 microsoft/windowsservercore
开始到目前为止我尝试了什么 - 我的图像上安装了 choco,所以我最初的解决方案是使用 choco install
choco install dotnet4.7.2 --allow-empty-checksums -y -v --trace -d
我得到的是 0x80004005
C:\users\ContainerAdministrator\AppData\Local\Temp\chocolatey> more .\dd_NDP472-KB4054530-x86-x64-AllOS-ENU_decompression_log.txt
??[5/25/2019, 22:26:33] === Logging started: 2019/05/25 22:26:33 ===
[5/25/2019, 22:26:33] Executable: C:\Users\ContainerAdministrator\AppData\Local\Temp\chocolatey\dotnetfx\4.7.2.20180712\NDP472-KB4054530-x86-x64-AllOS-ENU.exe v4.7.3081.0
[5/25/2019, 22:26:33] --- logging level: standard ---
[5/25/2019, 22:26:33] Successfully bound to the ClusApi.dll
[5/25/2019, 22:26:33] Error 0x800706d9: Failed to open the current cluster
[5/25/2019, 22:26:33] Cluster drive map: ''
[5/25/2019, 22:26:33] Considering drive: 'C:\'...
[5/25/2019, 22:26:33] Drive 'C:\' has been selected as the largest fixed drive
[5/25/2019, 22:26:33] Directory 'C:\b659e2a87b51ccf0f10d6292d1a4c2\' has been selected for file extraction
[5/25/2019, 22:26:33] Extracting files to: C:\b659e2a87b51ccf0f10d6292d1a4c2\
[5/25/2019, 22:26:33] Error 0x80004005: Failed to extract all files out of box container #0.
[5/25/2019, 22:26:33] Error 0x80004005: Failed to extract
- 找0x80004005,发现一些类似的问题 https://social.technet.microsoft.com/Forums/en-US/4808233e-1410-4305-a8d1-0e88f3a6fdc8/net-451-install-only-works-when-running-on-a-ui-session?forum=configmanagerapps
https://blog.nowmicro.com/2015/02/23/deploying-net-framework-4-5-2-configmgr-application/
按照上面链接中的一些想法,我做到了:
- 我手动下载了 NDP472-KB4054530-x86-x64-AllOS-ENU.exe
- 我从命令行(使用 /extract)在主机上本地提取了它。基本上我有一个包含 NDP472 的所有内容的本地目录(包括 安装程序)
- 我正在使用卷运行容器
docker run --name cw10 -v C:\MyNDP472:C:\tmp -d client-windows10
- 我正在使用 cmd 附加到容器。从 C:\tmp(从主机指向 C:\MyNDP472),我从命令行运行。
Setup.exe /q /norestart /ChainingPackage "ADMINDEPLOYMENT" /x86 /x64 /redist /log "C:\tmp\reportdotnet.log"
- 结果为最终结果:安装成功,成功代码:(0x80070BC2),“请求的操作成功。更改将在系统重启后生效。
- 我正在检查注册表(这次使用 Powershell)
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |Get-ItemProperty -name Version,Release -EA 0 |Where { $_.PSChildName -match '^(? !S)\p{L}'} |选择 PSChildName、版本、版本
- 我仍然得到以前版本的 .net 框架(完整版 4.6.01586 394802) - 基础镜像附带的那个。 我使用 docker restart 重新启动容器。我得到完全一样的。没有变化。
我的最终目标:我想构建一个目标为 4.7.2 的 C# sln 解决方案。
我没有想法。 有什么想法吗?
谢谢
【问题讨论】:
-
查找 Microsoft 用于其 dotnet 框架的 docker 文件
-
@GregorySuvalian - 这是可用的吗? github我猜..
-
是的,它在 GitHub 上,你只需找到它
-
供将来参考 - 虽然我仍然需要验证它 - github.com/microsoft/dotnet-framework-docker/blob/master/4.7.2/….
-
这是SDK镜像,需要runtime
标签: .net powershell docker chocolatey windows-container