包含在T4模板中只能使用一次

时间:2015-07-16 07:01:17

标签: c# css templates t4

我在C#中的T4模板中有一个include指令:

<#@ include file="styles.css" #>

styles.css中的文本已正确包含在内。但只是第一次。如果我在styles.css文件中进行更改并重新生成/重新运行应用程序,则会包含旧版本(就好像它来自缓存或类似的东西)。 仅包含styles.css中的更改,如果我删除include指令,则在此之后构建并插入行。然后它可以工作......直到在styles.css中进行下一次更改

2 个答案:

答案 0 :(得分:1)

根据include指令的docs,有一个名为&#34的可选参数;一次&#34;默认为&#34; true&#34;。来自文档:

  

使用一次=&#34; true&#34;确保模板仅包含一次,甚至   如果它是从多个其他包含文件调用的。

     

此功能   使您可以轻松构建可重用的T4片段库   可以随意包括而不用担心其他一些代码片段   已经包括在内了。例如,假设您有一个库   处理模板处理和C#的非常细粒度的片段   代。反过来,一些更具体的任务使用它们   生成例外的实用程序,然后可以使用它们   更多特定于应用程序的模板。如果绘制依赖项   图表,您会看到一些片段会被多次包含在内。但   once参数可以防止后续的包含。

我的猜测是将此设置为false将允许每次处理​​您的css文件。

答案 1 :(得分:0)

我是一个&#34;解决方案&#34;对于这个问题:

模板代码仅在模板本身发生更改时重建。无法识别外部静态文件的更改。因此,必须在通过上下文菜单&#34;运行自定义工具&#34;进行更改后手动启动模板的解析。