VS项目模板中的触发器代码生成



我创建了一个项目模板,该模板包含一个SQL数据库和一个Linq2SQL dbml文件。使用此模板创建的项目将不会编译,因为明显缺少代码,但如果右键单击dbml文件并调用Run Custom Tool,则会生成缺少的代码,然后编译成功。

我需要对我的项目模板做些什么才能触发代码生成?我知道项目模板的IWizard扩展系统,但我不知道如何通过编程使IDE执行代码生成。

所以问题是:在项目模板中使用的向导实现中,如何触发IDE代码生成

一种可能的方法是向您的项目添加预构建事件,该事件运行批处理文件[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
)

这里的关键是预构建事件和创建运行TextTransform实用程序的批处理文件。

如果你更倾向于MSBuild集成,你需要想出以下方法:

<PropertyGroup>
    <TransformOnBuild>true</TransformOnBuild>
</PropertyGroup>
.....

在你的tt文件中。

构建中的转换模板

最新更新