容器化运行Visual Studio项目时缺失Microsoft.Win32.Registry报错
问题:Visual Studio容器化项目时出现Assembly加载失败错误
尝试通过Dockerfile将Visual Studio项目容器化运行时,遇到以下错误:
2>C\Users\user\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.21.0\build\Container.targets(217,5): error MSB4018: The "ContainerBuildAndLaunch" task failed unexpectedly. 2>C\Users\user\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.21.0\build\Container.targets(217,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken={token}' or one of its dependencies. The system cannot find the file specified. 2>C\Users\user\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.21.0\build\Container.targets(217,5): error MSB4018: File name: 'Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken={token}' 2>C\Users\user\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.21.0\build\Container.targets(217,5): error MSB4018: at Microsoft.VisualStudio.Containers.Tools.Common.Client.DockerPathHelper.FindDockerCliPath() 2>C\Users\user\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.21.0\build\Container.targets(217,5): error MSB4018: at Microsoft.VisualStudio.Containers.Tools.Common.Prerequisites.DockerForWindowsDriveSharingPrerequisite.<EvaluateAsync>d__0.MoveNext()
已尝试以下操作但未解决问题:
- 更新Visual Studio
- 清除并还原所有NuGet包
- 重新安装Docker Desktop
可行解决方案
- 安装匹配版本的.NET SDK:
Microsoft.Win32.Registry 5.0.0属于.NET 5组件,确保本地已安装.NET 5 SDK - 手动添加NuGet包引用:在项目中添加
Microsoft.Win32.Registry包,选择5.0.0或兼容的稳定版本 - 调整容器工具包版本:尝试升级或降级
microsoft.visualstudio.azure.containers.tools.targets包版本,比如切换到1.20.0或最新稳定版,通过NuGet包管理器操作即可 - 修复.NET环境:执行命令
dotnet --repair修复本地.NET SDK安装,解决组件缺失问题 - 配置Docker CLI环境变量:手动将Docker CLI的安装路径(通常为
C:\Program Files\Docker\Docker\resources\bin)添加到系统环境变量PATH中,避免工具自动查找失败
内容的提问来源于stack exchange,提问作者user29103816
相关产品推荐
相关产品推荐

