1
我正在尝试为vs2017构建VSIX包以使自定义工具可用。 我现在面临的问题是,我无法在调试时获取当前工作区。 下面的代码用于获取工作区:VSIX项目:由于投射问题而无法获取当前工作区
var componentModel = (IComponentModel)Package.GetGlobalService(typeof(SComponentModel));
var workspace = (Workspace)componentModel.GetService<VisualStudioWorkspace>();
在代码的第二线引发的错误是“无法转换类型的对象‘Microsoft.VisualStudio.LanguageServices.RoslynVisualStudioWorkspace’为类型“Microsoft.VisualStudio .LanguageServices.VisualStudioWorkspace”。“
我已经将languageservices-package添加到项目中,如其他主题上的建议。
现在我正在接近这个问题。在我见过的模块中,Microsoft.CodeAnalysis.Workspaces被加载了2次,所以我从输出中排除了vsix中的引用。 –
“无法加载文件或程序集'Microsoft.CodeAnalysis.Workspaces,版本2.3.0.0'....”我可以使用程序集重定向工作吗?我看到程序集已经加载,只是在一个不同的版本 –
@ D.J .:听起来你引用的是比VS版本更新的Roslyn版本。升级VS或降级Roslyn。 – SLaks