對於我的碩士論文,我構建了一個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