Visual Studio 2017 v15.6.3无法创建或打开.shproj(共享项目)文件
我之前也踩过这个一模一样的坑!升级Visual Studio 2017到15.6.3版本后,原本正常的共享项目突然显示「加载失败」,重新加载时弹出的错误提示和你完全一致:
C:\File\Path\Project.Shared.shproj : error : Expected 1 export(s) with contract name "Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.ProjectFactory+ProjectLoadHelper"
试了几个方法后终于搞定了,分享给你:
优先尝试修复VS安装
打开Visual Studio Installer,找到你的VS2017实例,点击「修改」后选择「修复」选项。升级过程中很容易出现组件损坏或缺失的情况,修复操作会自动检查并补全这些问题,这是解决这类加载异常最省心的办法。清理VS缓存文件
先关闭所有VS实例,然后删除以下几个目录的缓存:%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_<你的VS实例ID>\ComponentModelCache%USERPROFILE%\AppData\Local\Temp\VisualStudioExplorer- 项目根目录下的
.vs文件夹(这个是自动生成的缓存目录,删除后重启VS会重新创建)
清理完后重启VS,再尝试加载共享项目。
检查共享项目的目标框架配置
右键点击加载失败的.shproj文件(即使显示加载失败也能右键操作),选择「编辑项目文件」,检查里面的<TargetFramework>或<TargetFrameworks>节点,确保配置的是VS2017 15.6.3支持的框架版本(比如netstandard2.0、net47等)。如果版本不兼容,修改后保存,再重新加载项目。手动注册VS组件(进阶方案)
如果上面的方法都没效果,试试以管理员身份打开命令提示符,导航到VS安装目录的Common7\IDE文件夹(比如C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE),运行以下命令:devenv /setup这个命令会重新注册VS的所有组件和项目模板,完成后重启VS再试。
内容的提问来源于stack exchange,提问作者Victor Chelaru

