0

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

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

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

4

1 回答 1

0

这不是 T4 支持的方案。

如果您的方案允许“固定”模板,但数据可变,那么运行时 T4 模板是一个很好的解决方案。但是,T4 的实际模板生产部分仅被许可在 Visual Studio 获得许可的情况下使用,而且既未经测试也不支持在服务器或任何多线程环境中运行。

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

于 2012-08-14T17:13:01.553 回答