我正在尝试为代码生成编写一些漂亮且结构化的t4。我将我的逻辑分解为可重用的函数,并将它们放入单独的文件中(就像“普通”代码一样)。问题是我不能包含一个通用文件,因为它将被包含多次。包含文件的T4“头文件”
例如,我有4个文件:Core.tt
,File1.tt
,File2.tt
和MainTemplate.tt
。 Core.tt
包含在File1.tt
和File2.tt
。 虽然File1.tt
和File2.tt
包括在MainTemplate.tt
当我想从我MainTemplate.tt
收到以下错误产生的输出:
Error 8 Compiling transformation: The type 'Microsoft.VisualStudio.TextTemplating62CD98C8FF0EB737CAFBD5ED17A158C3.GeneratedTextTransformation' already contains a definition for 'PropertyAttribute'
我想,其原因是Core.tt
已包含了两次。有没有解决我的问题的方法?在C++中可以添加头文件:#ifndef xxx #define xxx #endif
我花了不到2个小时写一个相当于T4这既解决了这个问题,并重新转换所有依赖模板时库模板变化的问题。 T4设计不好。不要使用它。 – Jack
@Jack:你会介意为T4项目做贡献吗? – Vlad