gpt4 book ai didi

c# - 将 Roslyn MSBuildWorkspace 与 Visual Studio 2013 结合使用

转载 作者:太空狗 更新时间:2023-10-29 20:56:27 28 4
gpt4 key购买 nike

为了我的硕士论文,我正在构建一个 Visual Studio 插件,它应该对当前打开的解决方案执行一些代码分析。为此,我决定尝试使用 Roslyn,使用 corresponding nuget package .

在我尝试使用 MSBuildWorkspace.Create() 之前一切正常(用于导航代码的 SyntaxTree,...)。最后一次调用导致以下异常:

Could not load file or assembly 'Microsoft.Build, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.":"Microsoft.Build, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

我找到了这两篇文章:

据我了解,我需要 Visual Studio 14 的 MSBuild 工具,它在相关的 iso 中。

我不想安装完整的 Visual Studio 14,这也是因为我正在编写的插件应该在 Visual Studio 2013 下运行。从两个帖子看来,我只能安装 VS 14 的这一部分。

我的问题实际上是:如果我安装 MSBuild Tools for Visual Studio 14,我当前正在处理的所有其他 Visual Studio 项目会发生什么情况?目前他们用的是Visual Studio 2013的MSBuild工具,还能用吗?

更新

我实际想要获得的是查找给定方法是否在项目中有引用。这个想法是按照this post进行的。 .

最佳答案

当您说您正在为 Visual Studio 构建插件时,如果您关心的只是获取当前打开的解决方案的工作区(即用户正在编辑的代码),那么您永远不应该使用 MSBuildWorkspace。这是一种用于在 Visual Studio 之外加载内容的类型。如果你在产品中,你可以做什么是 MEF [导入] Microsoft.VisualStudio.LanguageServices.VisualStudioWorkspace。这使您可以实时访问用户已打开的内容,并避免完全运行 MSBuild。

请注意,您仍然必须小心选择您构建所针对的引用程序集:如果您使用最新的 NuGet 包,那将不起作用,因为它们的版本(以及 API——我们改变了一堆东​​西)比上一个 Visual Studio 2013 预览中的东西。

关于c# - 将 Roslyn MSBuildWorkspace 与 Visual Studio 2013 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323145/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com