我创建了一个包含SQL数据库和Linq2SQL dbml文件的项目模板。由于明显缺少代码,使用此模板创建的项目将无法编译,但如果右键单击dbml文件并调用Run Custom Tool
,则会生成缺少的代码,然后编译成功。
我需要对项目模板做些什么才能触发代码生成?我知道项目模板的IWizard扩展系统,但我不知道如何以编程方式使IDE执行代码生成。
所以问题是:如何在用于项目模板的向导实现中触发IDE代码生成?
答案 0 :(得分:0)
一种可能的方法是在项目中添加一个pre-build事件,该事件运行批处理文件[transformer.bat]并执行转换:
使用transformer.bat中的以下内容获取需要转换的文件列表:
dir %wdir%\*.tt /b /s > myFiles.txt
并针对他们运行TextTransform实用程序,类似于以下内容:
for /f %%d in (myFiles.txt) do (
set file_name=%%d
set file_name=!file_name:~0,-3!.%extension%
TextTransform.exe -out !file_name! %%d
)
这里的关键是pre-build事件并创建运行TextTransform Utility的批处理文件。
如果你更倾向于MSBuild integration,你需要想出以下内容:
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
</PropertyGroup>
.....
在您的tt文件中。