在构建我的(大型)MVC 解决方案后,页面显示在浏览器中大约需要 30 - 60 秒(没有附加调试器)。使用 procmon,我发现占用大部分时间的是编译每个单独的 razor 文件。调用 c# 编译器时,会将所有项目引用传递给它,例如:
csc.exe /t:library /utf8output /R:"ReferenceOne.dll" /R:"ReferenceTwo.dll" /out:"App_Web_4ggvz4di.dll" /D:DEBUG /debug+ /optimize- /w:4 /nowarn /warnaserror- "\App_Web_4ggvz4di.0.cs" "App_Web_4ggvz4di.1.cs"
但是,它使用了我所有的项目引用(总共超过 300 个),这导致每个 razor 文件的编译时间大约为 4 秒。如果我手动更改此命令以仅包含所需的少数引用(大约 10 个),则编译需要 0.1 秒。
有人对如何提高此性能有任何想法吗?特别是如何明确告诉剃刀编译器需要哪些引用。