对于我的硕士论文,我构建了一个Visual Studio插件,该插件应该对当前打开的解决方案执行一些代码分析。 为了做到这一点,我决定尝试使用Roslyn,使用corresponding nuget package。在Visual Studio 2013中使用Roslyn MSBuildWorkspace
一切工作正常(SyntaxTree用于导航的代码,...),直到我试图用MSBuildWorkspace.Create().
这最后调用导致以下异常:
无法加载文件或程序集“微软。 Build,Version = 14.0.0.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其 依赖项之一。系统无法找到文件指定 “:” Microsoft.Build,版本= 14.0.0.0,文化=中立, 公钥= b03f5f7f11d50a3a
我发现这两个职位:
- Creating new Microsoft.CodeAnalysis.CustomWorkspace - got ReflectionTypeLoadException
- MSBuildWorkspace.Create() throws exception
从中我明白,我需要的MSBuild工具的Visual Studio 14,这是在相对ated iso。
我不想安装完整的Visual Studio 14,这也是因为我正在编写的插件应该在Visual Studio 2013下运行。从两篇文章看来,我似乎只能安装VS 14的这一部分。
我的问题实际上是:如果我安装Visual Studio 14的MSBuild工具我目前正在使用的所有其他Visual Studio项目会发生什么? 目前他们使用Visual Studio 2013的MSBuild工具。它仍然可以使用它?
更新
什么我acctually试图得到的是找到一个给定的方法有项目中引用。这个想法是按照this post进行的。
与VS集成的诊断将与VS耦合。看起来Roslyn现在需要VS 14,VS 13预览版不再受支持。您当然可以并排安装多个版本的VS,但由于它是CTP,因此总是会出现一些问题。通常的样板文件是:“尽管这些CTP旨在与早期版本的Visual Studio一起并行安装,但不保证每个CTP的完全兼容性。” – 2014-10-12 08:56:35
事实上,我可以安装并排不同的VS版本(与通常的样板)它是我知道weel。事实上,最终该插件应该与Wisual Studio 2013一起工作。如果为了与VS 2013一起工作,我需要安装VS 2014的MSBuild,直到“正常VS 2013项目”仍然会使用旧的MSBuild。 – Lando 2014-10-12 11:06:42
正如Jason所说,您应该使用VisualStudioWorkspace,并且您不会遇到任何这些问题。由于VisualStudioWorkspace没有记录,我在这里为各种工作区编写了一个指南:http://joshvarty.wordpress.com/2014/09/12/learn-roslyn-now-part-6-working-with-workspaces/ – JoshVarty 2014-10-12 19:45:45