2012-08-14 148 views
0

我正在玩這個新的(對我來說)是T4模板的技術。 爲了簡單起見,我需要實現的一種方法是生成電子郵件的文本,讓用戶自定義郵件中的文本,但是會在運行時取代一些「佔位符」。 這聽起來對於我來說T4運行時模板應該是一個不錯的選擇。 事實上,它像一個魅力,除了我不明白如何部署解決方案的事實。 我想將我的.tt文件部署在生產服務器上作爲外部文件(這意味着不嵌入dll文件),以便能夠用記事本簡單地打開該文件,更改文本的電子郵件,並讓系統開始使用新模板。T4運行模板部署

我試用過TT文件的生成操作屬性設置爲Content複製設置爲輸出財產Copy always:第一根本就沒什麼用處,只要我能看到;第二個複製bin文件夾中的.tt和底層.cs文件。

是否有一個乾淨方式來實現這樣的部署? .tt文件的編輯是否啓動應用程序的重新啓動,例如當您更改web.config或類似的文件?

+1

這聽起來不像是TT的意思。爲什麼常規設置電子郵件正文不起作用? – StingyJack 2012-08-14 16:40:10

+0

不是嗎?我認爲TT既適用於編譯時模板,也適用於運行時模板...如果我無法在沒有完全重新部署的情況下更改模板中的文本,我可以使用何種運行時模板? 也許我錯過了一些東西... – themarcuz 2012-08-14 16:41:53

+1

雖然它可以使用T4運行時(幾個例子http://stackoverflow.com/q/2307567/16391),它聽起來像你使用過度複雜解決一個更簡單的問題。 – StingyJack 2012-08-14 16:44:27

回答

0

這不是T4支持的場景。

如果您的場景允許「固定」模板,但是可變數據,那麼運行時T4模板是一個很好的解決方案。但是,T4的實際模板生成片只有在獲得Visual Studio許可的情況下才可以使用,並且未經過測試或不支持在服務器或任何多線程環境中運行。

還有一大堆其他模板庫在更廣泛的場景中進行了測試,可能更適合此特定應用。例如,微軟有Razor,如果你真的生產HTML格式的電子郵件,它可能會特別出色,因爲它特別針對角度支架方案,並且非常適合服務器,因爲它是設計運行的地方。