我使用creating a custom scaffolder包按照T4 Scaffolding上的说明进行操作,效果很好。但是,在这个过程中我发现我需要构建大量可重用的组件,这些组件将在多个脚手架和模板之间共享。
我知道我可以构建一个类库并在GAC中注册它以使PowerShell脚本和T4模板可以访问它,但在团队环境中,这并不总是可行的。我更愿意将可重用组件签入源代码控制并以某种方式访问它们。
我采用的一种方法是将T4模板拆分为多个文件,并将include
全部拆分为主模板。
<#@ include file="Extensions.cs.t4" #>
但是,如果我在任何一个模板中定义一个类,该类将成为嵌套类,因此不能是静态的(例如)。
有没有办法构建可重用的类,方法,扩展并使自定义脚手架可以访问它们而无需将它们安装到GAC? T4Scaffolding包的数量为utility functions accessible in the custom scaffolder。他们是怎么做到的?
答案 0 :(得分:0)
我想我是在this answer的帮助下弄明白的。我必须用我所有的共享代码构建一个程序集。然后,在Powershell脚本中,我只需要:
import-module "d:\path\to\assembly.dll"
希望有人帮助。如果有人有更好的想法,请分享。