我正在玩这种新的(对我来说)T4模板技术。 简单来说,我需要实现的是一种生成电子邮件文本的方法,让用户自定义邮件中的文本,但有一些“占位符”将在运行时替换。 这对我来说是一个T4运行时模板应该是个不错选择的任务。 事实上,除了我不了解如何部署解决方案之外,它的工作方式就像一个魅力。 我想将生产服务器上部署的 .tt 文件作为外部文件(这意味着没有嵌入 dll 文件中),以便能够简单用记事本打开该文件,更改电子邮件的文本,让系统开始使用新模板。
我尝试将tt文件的构建操作属性设置为Content
,并将复制到输出属性设置为Copy always
:首先,根据我的意见,尽量不做任何有用的事情;第二个复制bin文件夹中的 .tt 和基础 .cs 文件。
是否有 clean 方式来实现这样的部署? 编辑 .tt 文件是否会重新启动应用程序,例如更改 web.config 或类似文件时?
答案 0 :(得分:0)
这不是T4支持的方案。
如果您的场景允许“固定”模板,但允许可变数据,那么运行时T4模板是一个很好的解决方案。但是,T4的实际模板生成部分仅授权在Visual Studio获得许可的情况下使用,并且既不经过测试也不支持在服务器或任何多线程环境中运行。
在更广泛的场景中测试了大量其他模板库,这些场景可能更适合此特定应用程序。例如,微软有Razor,如果你实际上是在生成HTML格式的电子邮件,它可能会特别好用,因为它专门针对角度括号场景而且非常适用于服务器,因为它是设计用于运行