代码之家  ›  专栏  ›  技术社区  ›  Pete Duncanson

(.NET)在触摸父XSL文件之前,对包含的子XSL文件所做的更改不会被提取?

  •  0
  • Pete Duncanson  · 技术社区  · 15 年前

    更新:为了解决这个问题,我创建了一个简单的文件观察程序,它可以“触摸”引用包含文件的任何父文件的修改日期。详情在我们的博客上, http://offroadcode.com/blog/2010/4/28/xsltouch,-taking-the-pain-out-of-editing-included-xslt-templates/ /更新

    好的,我在一个文件中有一个手边模板的XSL文件,其他的一些XSL文件包括(使用)来保持我的设计美观和干燥。

    我正在使用.NET根据我的XML运行XSL文件。问题是,当我对子XSL文件进行更改并重新运行我的转换(即刷新浏览器)时,更改不会显示出来,除非我触摸或勾选父文件。

    我认为.NET正在缓存XSL文件,但由于子文件从未被直接称为非直接缓存,因此只有在父文件重新缓存时才会刷新。声音是否可用?问题是我找不到任何东西来支持这种感觉。

    有人知道我是否是对的吗?更重要的是,有人知道我如何在我的开发机器上防止它发生,至少是为了加快我的代码/刷新周期?

    编辑:我也在使用XSL 1和.NET 1。

    2 回复  |  直到 13 年前
        1
  •  1
  •   Pete Duncanson    15 年前

    我最终在.NET中为此创建了一个小助手程序,它简单地在我的模板文件夹中使用一个FileWatcher,当保存一个.xsl文件时,它会通过所有其他模板快速执行regex,以查找包含已保存文件的任何模板。如果是这样,那么这些文件的修改日期将被“勾选”,这将强制刷新.NET的缓存。

    这真的很好用,很好而且无缝。SVN没有注意到被勾选的文件被修改了,这也是一个额外的好处,因为它停止了大量的签入。我希望在新的一年里整理代码并发布它。

    注意这个空间:)

        2
  •  0
  •   Andrew Hare    15 年前

    当你 <xsl:include/> <xsl:import/> 其他XSLT文件——iclude或import的结果被缓存,直到父样式表被重新加载。父样式表和子样式表之间没有耦合,这将允许子样式表通知父样式表已更新,需要重新导入。

    出于开发目的,处理这一问题的最快方法是重新启动加载应用程序的AppDomain。对于Windows应用程序,这意味着重新启动应用程序本身-对于ASP.NET,这意味着重新设计承载网站的AppPool。