我在C#中的T4模板中有一个include指令:
<#@ include file="styles.css" #>
styles.css中的文本已正确包含在内。但只是第一次。如果我在styles.css文件中进行更改并重新生成/重新运行应用程序,则会包含旧版本(就好像它来自缓存或类似的东西)。 仅包含styles.css中的更改,如果我删除include指令,则在此之后构建并插入行。然后它可以工作......直到在styles.css中进行下一次更改
答案 0 :(得分:1)
根据include指令的docs,有一个名为&#34的可选参数;一次&#34;默认为&#34; true&#34;。来自文档:
使用一次=&#34; true&#34;确保模板仅包含一次,甚至 如果它是从多个其他包含文件调用的。
此功能 使您可以轻松构建可重用的T4片段库 可以随意包括而不用担心其他一些代码片段 已经包括在内了。例如,假设您有一个库 处理模板处理和C#的非常细粒度的片段 代。反过来,一些更具体的任务使用它们 生成例外的实用程序,然后可以使用它们 更多特定于应用程序的模板。如果绘制依赖项 图表,您会看到一些片段会被多次包含在内。但 once参数可以防止后续的包含。
我的猜测是将此设置为false将允许每次处理您的css文件。
答案 1 :(得分:0)
我是一个&#34;解决方案&#34;对于这个问题:
模板代码仅在模板本身发生更改时重建。无法识别外部静态文件的更改。因此,必须在通过上下文菜单&#34;运行自定义工具&#34;进行更改后手动启动模板的解析。