升级VS2017 Preview后无法构建Docker上的ASP.NET Core项目
我之前也碰到过类似的坑,应该是Visual Studio 2017 Preview版本自带的Docker SDK配置文件出了YAML格式错误。给你几个实用的解决办法:
修复SDK配置文件的YAML语法错误
报错指向的路径C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets里,第11行存在语法问题——预期是映射结构(MappingStart),结果用了数组结构(SequenceStart)。你需要以管理员权限打开这个文件,找到第11行,把对应的数组格式调整成键值对的映射格式,比如把- xxx改成xxx: yyy这类符合YAML规范的结构。回滚到稳定版VS2017
如果赶项目没时间排查细节,最直接的办法就是卸载当前的Preview版本,重新安装之前能正常构建项目的VS2017稳定版本,能快速恢复开发工作流。手动指定Docker SDK的稳定版本
在你的项目根目录新建或修改Directory.Build.props文件,添加以下内容,指定一个已知稳定的Docker SDK版本(比如1.0.17,你可以根据实际情况调整):<Project> <PropertyGroup> <DockerSdkVersion>1.0.17</DockerSdkVersion> </PropertyGroup> </Project>这样VS会使用你指定的稳定版本SDK,而不是Preview版自带的有问题的版本。
清理相关缓存
有时候缓存损坏也会引发这类奇怪的问题,试试以下步骤:- 完全关闭Visual Studio
- 删除
%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*\ComponentModelCache下的所有缓存文件 - 打开命令提示符,执行
docker system prune -a清理Docker的镜像、容器和缓存(注意:这个命令会删除未使用的镜像,如果你有需要保留的镜像,先备份) - 重新打开Visual Studio,尝试重新构建项目
内容的提问来源于stack exchange,提问作者illug




