Ben*_*ack 21 .net c# vb.net t4 code-generation
我正在研究我的第一个T4代码生成工具,为我的项目添加一些存储过程帮助程序代码.我已经创建了自定义类型(例如StoredProcedure,StoredProcedureParameter以帮助我生成代码,并在我的代码中包含了程序集和命名空间引用:
<#@ template debug="false" hostspecific="false" language="VB" #>
<#@ output extension=".generated.vb" #>
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="StoredProcCodeGenerator" #>
Run Code Online (Sandbox Code Playgroud)
这允许我在我的T4模板代码中使用我的自定义类型.但是,因为我的自定义类型与T4模板代码存在于同一个项目中,所以在运行模板代码而不重新启动Visual Studio时,我无法重新编译项目.这不是很有趣.
我读了一篇很棒的文章,通过使用T4工具箱解决了这个问题,但是它没有用.要么我执行VolatileAssembly指令错误,要么T4工具箱根本没有安装.我不确定工具箱是否正确安装(我在Win XP上使用VS 2010).
有什么方法可以解决这个问题?
Ben*_*ack 10
您需要删除以前的assembly引用,然后添加VolatileAssembly引用.如果您不assembly首先删除常规引用,则会在添加VolatileAssembly引用时收到已添加的错误.
<#@ template debug="false" hostspecific="false" language="VB" #>
<#@ output extension=".generated.vb" #>
Run Code Online (Sandbox Code Playgroud)
<#@ assembly name="$(TargetPath)" #>
<#@ VolatileAssembly processor="T4Toolbox.VolatileAssemblyProcessor"
name="$(TargetPath)" #>
<#@ import namespace="StoredProcCodeGenerator" #>
Run Code Online (Sandbox Code Playgroud)
现在,您可以继续构建项目,并在T4模板中使用该项目中定义的类型.
| 归档时间: |
|
| 查看次数: |
8418 次 |
| 最近记录: |