VS IsolatedShell 2015 CPS自定义项目缺失Reference manager问题咨询
VS Isolated Shell 2015 CPS项目缺失Reference Manager排查方案
1 必备组件与基础配置检查
- 确认Isolated Shell打包时完整包含了Reference Manager核心组件:
Microsoft.VisualStudio.ReferenceManager.Implementation对应的程序集与pkgdef配置,定制Shell默认会裁剪该组件,需手动在打包配置的InstalledComponents节点添加对应项。 - 检查项目
.targets配置,确保没有隐式禁用引用管理器,需添加如下配置:
<PropertyGroup> <HasRelativeReferencePaths>true</HasRelativeReferencePaths> <DisableReferenceManager>false</DisableReferenceManager> </PropertyGroup>
- 确认项目能力是加载时直接暴露,而非延迟加载的动态能力,Reference Manager的激活逻辑只会在项目初始化时读取一次项目能力集合。
2 CPS接口与MEF导出检查
- 必须实现
IVsReferenceManagerUser接口,且在项目节点的QueryService调用中可以正确返回该接口的实例,Reference Manager触发时会优先查询该接口确认项目支持性。 - 确认所有引用类型对应的
IReferenceProvider实现已正确通过MEF注册:哪怕是复用CPS默认的引用提供者,也要确保MEF扫描目录包含了对应程序集,没有在pkgundef中排除这些提供者的MEF导出。
3 命令路由与上下文菜单检查
- 运行你的Isolated Shell时添加
/logs参数,触发References节点右键菜单后关闭程序,查看生成的活动日志,确认Project.AddReference命令是否存在路由失败、权限不足类的报错。 - 检查你项目的
Commands.vsct配置,确认没有重写References节点的上下文菜单,也没有移除默认的AddReference命令绑定。
内容的提问来源于stack exchange,提问作者Betadestruction
相关产品推荐
相关产品推荐

