如何在ASP.NET 5中提供自定义编译任务?

时间:2015-02-23 02:20:24

标签: razor asp.net-core katana visual-studio-2015

这个问题与ASP.NET 5(又名vNext)和新的K / KRE有关。

背景

我想通过引入一些简单的特定于域的语言(类似于.cshtml.xaml)为ASP.NET5项目提供一些C#代码生成。用于创建.g.cs文件的自定义MsBuild任务未在KRE中使用,因此我需要使用新的DSL代码生成方法。

问题1

是否KRE / Roslyn API与Razor.cshtml相同的方式挂钩到编译过程中?

问题2

在代码生成期间,我想访问Roslyn工作区和从project.json配置找到的文件的AST。这可能是k运行时吗?

1 个答案:

答案 0 :(得分:1)

今天有一些方法可以做到这一点。

最实用的入门方法是查看ASP.NET 5中执行类似操作的现有部分。

例如:

  1. Razor repo实现了解析,处理和编译cshtml文件的逻辑。
  2. CompileModules repo有其他类型的编译器前/后处理逻辑。
  3. 这些类型的场景并非超级微不足道,因此很难提供准确的指导。我不知道有关于这个主题的任何博文或文章,因为它是ASP.NET中一个相当新的模式。