.NET Core中的T4替代方案是什么?

44

一个T4文本模板是由文本块和控制逻辑混合而成的,可以生成文本文件。

.Net Core不原生支持T4模板。

有人能向我推荐在.NET Core中的T4替代方案吗?
我们如何进行代码生成?


1
你需要从T4中获取什么?我已经将大部分的T4代码转移到了简单的.net脚本,可通过LinqPad或在Visual Studio中直接使用.fsx文件运行。 - Maslow
31
这个问题为什么被认为是离题的?这是我目前真正想知道的一个问题- 我在 Stack Overflow 上找到了答案,但你们将其关闭了。不可思议。 - ericdc
2
由于主题已关闭,因此在此添加。对于运行时文本模板,您可以向解决方案中添加一个单独的.NET Framework项目以进行所有代码生成,然后在.NET Core项目中添加到生成的.CS文件的链接。 - John Holliday
1
请解释一下如何使这个话题相关,因为我想知道问题的答案... - Thundter
自从 .NET 5 推出以来,源代码生成器是未来的趋势。 - Cosmin Sontu
显示剩余6条评论
1个回答

16

1
Scripty是否作为跨平台解决方案与Visual Studio Code (.NET Core)兼容? - NBM
2
Scripty 不支持 .net core,而且 VS 2017 也给它带来了重大问题。 - Andrew Hoffman
1
MSBuild中的Scripty方案似乎不太可靠,因此我不建议在其中进行大量投资。 - Andrew Hoffman
我只在VS 2017中使用过Scripty,就CustomTool而言一切都很好。我想CLI也会做同样的事情,因为它实际上是相同的引擎。它将生成任何C#程序可以生成的输出,但示例是针对IVSSingleFileGenerator编写的,但您也可以执行更复杂的操作。可以像T4模板一样调用的CustomTool函数在vscode中不起作用,因为vscode本身不支持那种工具。 - StingyJack
1
我曾尝试让Scripty在dotnet(linux)上运行,但没有成功。因此,我花了一些时间编写了Python脚本(autogen),它与csproj集成并在构建过程中从模板生成工件(*.cs)。我正在使用它来生成用于消息传递的代理、存根和数据传输对象(DTOs)。 - rustam
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接