3

我在 c# .net 中有一个项目。
我需要挂钩“预构建”事件,以便我可以运行 ac# 类,该类将为同一个项目生成其他 c# 类。
我知道在java中你可以使用maven插件生成源代码,在.net中可以吗?

谢谢。

4

3 回答 3

6

试试有形 T4 编辑器。它是 Visual Studio 的一个插件,它公开了内置的T4 文本模板功能,因此您可以使用它来自动生成 C# 文件。它支持在 Visual Studio 中编译时生成 C# 代码。

我使用它在编译时将 .xml 文件转换为 2,600 行 C#。现在,如果我更改 .xml 文件并重新编译,它将自动重新生成正确的 C# 代码。

它就像魔术一样工作,并且完全无缝。

于 2011-11-03T12:48:07.637 回答
3

至少有两种选择:

  1. 使用T4
  2. 向构建文件添加预构建步骤。

T4 是进行代码生成的内置方式(广泛用于 ASP.NET MVC 脚手架和实体框架类型生成)。但是 T4 不直接支持编译时生成。它要么在设计时——开发者触发(重新)生成——要么在运行时生成;(第三方工具可以添加编译时生成)。


附录(6 年后):像Clarius.TransformOnBuild这样的 NuGet 包也可以做到这一点。

自定义 MSBuild 任务(包括运行外部程序)可用于创建代码,然后将其包含在编译中。在最简单的情况下,可以使用项目的“预构建”设置(项目属性的“构建事件”选项卡)。直接在 MSBuild 中工作(并且 a.csproj是一个 MSBuild 文件)提供了更大的灵活性。

于 2011-11-03T12:47:44.550 回答
2

听起来你想要T4 模板

于 2011-11-03T12:45:12.960 回答