代码之家  ›  专栏  ›  技术社区  ›  TheHans255

是否有一个C#build目标只进行解析和类型检查?

  •  2
  • TheHans255  · 技术社区  · 7 年前

    我有一个很大的C#代码库,正在进行大量重构,无法在Visual Studio 2017中一次打开整个代码库。因此,我只能对尽可能多的代码库进行重构,然后使用MSBuild并查找编译错误,以便捕获对旧对象的零散引用。

    为了更快地进行这些重构,是否有一个C#build目标或选项不需要生成任何IL,只需检查C#是否正确解析并正确使用它引用的任何类型?如果MSBuild没有将其作为第一方选项提供,那么它可能由第三方实现,还是不生成程序集就无法进行类型验证?

    编辑: 我基本上是在寻找一种C#相当于Rust的 cargo check ,它对项目进行所有静态分析,但不执行代码生成步骤。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Joe Sewell    7 年前

    你可以试试 compiling your code as reference assemblies 。这仍然会发出程序集,但方法体都是占位符(相当于 throw null ),不打算执行。这可以加快编译周期,因为编译器不需要在代码分析后生成任何IL。