T4 运行时模板部署



我正在使用这种新的(对我来说)技术,即 T4 模板。简单来说,我需要实现的是一种生成电子邮件文本的方法,让用户自定义邮件中的文本,但有一些将在运行时替换的"占位符"。在我看来,这听起来是一个任务,其中 T4 运行时模板应该是一个不错的选择。事实上,它就像一个魅力,除了我不明白如何部署解决方案的事实。我希望将我的 .tt 文件作为外部文件部署在生产服务器上(这意味着不嵌入到 dll 文件中),以便能够简单地使用记事本打开该文件,更改电子邮件的文本,并让系统开始使用新模板。

我尝试将 tt 文件的构建操作属性设置为 Content 并将复制到输出属性设置为 Copy always :据我所知,第一个只是没有做任何有用的事情; 第二个复制 .tt 和 bin 文件夹上的底层.cs文件。

有没有一种干净的方法来实现这样的部署?编辑 .tt 文件是否会启动应用程序的重新启动,例如更改 web.config 或类似文件时?

T4 不支持此方案。

如果您的方案允许"固定"模板,但允许变量数据,则运行时 T4 模板是一个很好的解决方案。 但是,T4 的实际模板生产部分仅授权用于 Visual Studio 获得许可的情况,此外,既不支持在服务器上或任何多线程环境中运行,也不支持

还有一大堆其他模板库在更广泛的方案中进行了测试,这些模板库可能更适合此特定应用程序。 例如,Microsoft有 Razor,如果您实际生成 HTML 格式的电子邮件,它可能特别有效,因为它专门针对尖括号场景,并且在服务器上非常有效,因为这是它设计运行的地方。

最新更新