2009-01-30 72 views

回答

10

T4模板文件可以集成到C++项目中,但比使用C#/ VB项目要多一点工作。在你的C++项目中创建一个新的文本文件并给它一个.tt扩展名。然后照常写你的模板。一个C++项目需要进一步的工作才能让它转换模板。我得到它的快速和肮脏的方式是直接添加一个自定义生成步骤,并直接调用“C:\ Program Files \ Common Files \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe”。我发现的另一种方法是添加一个自定义的MSBuild任务。可以找到指令here

This页面有更多的信息和一些使用T4代码生成的其他网页的良好链接。

+0

不知何故,它似​​乎不工作。尝试创建一个新的Win32 C++项目。然后添加一个简单的.tt文件并单击生成。没有东西会产生。 – 2009-02-02 07:07:48

+0

哎呀,你是对的。编辑我的答案。 – Logan5 2009-02-02 21:24:59

4

因为这是一个vcproj文件(C++),因此使用vcbuild时,MSBuild任务将不起作用。获得tt编译的最简单方法是像下面这样添加自定义构建步骤。

“C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe”-out $( ProjectDir)\ VSProject.cpp -I $(ProjectDir)$(ProjectDir)\ VSProject.tt

我花了几个小时研究上面的MSBuild任务解决方案,它对托管代码来说很不错,但是我看不到任何方法将它用于C++(将vcproj转换为csproj eek)