如何在VS C++项目中使用T4代码生成模板?

Fil*_*ącz 10 c++ t4 visual-studio

在C#项目下,IDE可以自动识别T4模板文件,但我不知道如何将它们集成到C++项目中(除了使用make文件).

有任何想法吗?

Log*_*an5 11

T4模板文件可以集成到C++项目中,但它比C#/ VB项目要多一些.在C++项目中创建一个新的文本文件,并为其提供.tt扩展名.然后正常编写模板.然后,C++项目需要进一步的工作来使其转换模板.我让它工作的快速和脏的方法是添加一个自定义生成步骤,并让它直接调用"C:\ Program Files\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe".我找到的另一种方法是添加自定义MSBuild任务.说明可以在这里找到

页面包含更多信息以及与使用T4代码生成的其他页面的一些良好链接.


小智 5

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

"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"
Run Code Online (Sandbox Code Playgroud)

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