我有一个引用其他项目和dll的Web应用程序项目。前段时间,我们在web.config中添加了optimizeCompilations =“true”标志,以便在更改其中一个相关文件后减少初始页面刷新的等待时间。我们将等待时间缩短到大约15-20秒。
然而,在某些时候,等待时间更长,我无法弄清楚原因是什么。我阅读了关于该标志的一堆文章,并且知道一个真正描述它如何确定何时重新编译Framework临时文件夹中的整个站点。似乎无论我重新编译它是一个引用的dll还是web应用程序dll本身,当我访问第一页时,框架临时文件夹的全部内容都会重新创建大约需要90秒。
无论如何都要追踪造成这种情况的原因。
在使我成为事物的事情上,optimizeCompilation标志不起作用,当它工作时,偶尔我们会遇到其中一个更改需要更新整个站点并且我们会收到错误的副案例。那时我们不得不进行重建来修复它。我记不起最后一次发生过了。
我理解它的方式,即使Dlls在root中发生变化,如果设置了该标志,整个站点也不会重新编译。
另外,我发现了一些奇怪的东西。在网站的框架临时文件夹中,有一个包含哈希码的hash.web文件。我假设这是编译器用来查看是否有变化的代码。作为测试,我记录了该代码,对源文件进行了更改并进行了编译。然后我检查了bin文件夹,并注意到唯一更改的文件是一些DLL。我在浏览器中更新了我的网页,刷新了一分钟。然后我检查了框架临时文件夹,并且大多数所有文件都有当前数据,这意味着它们都被重新编译。但是,当我检查hash.web中的哈希码时,它是相同的。我原本以为会有所不同。