Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码

Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性。以至于我们只需要编写很少量的代码便能够分析我们的项目文件。

作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 Roslyn 扩展项目,如何开始分析一个解决方案(.sln)中项目(.csproj)的代码文件(.cs)。


本文是 Roslyn 入门系列之一:

如果你希望真实地静态分析一个实际项目,并且理解这样的分析过程是如何进行的(而不只是写个 demo),那么本文的所有内容都将是必要的。

准备工作

为了能够进行后面关键的操作,我们需要先有一个能跑起来的项目。


▲ 在 Visual Studio 新建项目,选择“控制台程序(.NET Framework)”

在目前({% include date.html date=page.date %}),如果我们需要像本文一样分析现有的解决方案和项目,那么 .NET Framework 是必须的;如果只是分析单个文件,那么也可以选择 .NET Core,参见 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码

当然,如果你有一个现成的 .NET Core 项目,可以通过修改 .csproj 文件改成 .NET Framework 的:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <!-- 从 netcoreapp2.0 改成 net471,因为 NuGet 包中的 ValueTuple 与 net47 不兼容,所以只能选择 net471 或以上  -->
    <TargetFramework>net471</TargetFramework>
  </PropertyGroup>
</Project>

现在,我们有了一个可以开始写代码的 Program.cs 文件,接下来就可以正式开始入门了。

安装必要的 NuGet 包

在 NuGet 包管理器中搜索并安装 Microsoft.CodeAnalysis 包 —— 这是一个包含 Roslyn 所有 API 的各种 NuGet 包的合集。

Microsoft.CodeAnalysis

当然,如果你只是做一些特定的事情,当然不需要安装这么全的 NuGet 包,像 Roslyn 静态分析 - 林德熙 的 demo 和 Roslyn 编译与执行 - 吕毅 中的教程就不需要安装所有 NuGet 包。

特别注意!!!如果前面你是通过 .NET Core 项目改过来的,那么还需要额外安装以下三个 NuGet 包,否则运行时会无法打开解决方案和项目

  • Mic
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值