5

當前我在Asp.net MVC Web應用程序中有一個自定義VirtualPathProvider運行帶有預編譯網站的自定義VirtualPathProvider

VirtualPathProvider檢查路徑"/{Area}/{Controller}/..."中的區域,並使用NameSpace.{Area}.Main.dll模塊將該程序集中包含的視圖作爲嵌入資源返回。

這很好,我不需要部署任何ascxjs,css文件。現在

我的問題是這樣的:

我想預編譯的裝配aspxascx文件,而不必意見作爲嵌入式資源我會用的Response.Write視圖類。

我可以使用aspnet_compiler預編譯視圖,但當ViewEngine嘗試查找視圖並失敗時,我總是收到錯誤。

我的主要目標是讓首次使用某個視圖/用戶控件的方法更快,並且不要等待編譯發生。

這是一個需求,因爲應用程序可以分組到插件中,並將此插件部署到Bin目錄中。

有什麼想法?

回答

8

這個VirtualPathProvider In Precompiled Web Sites博客文章Coskun SUNALI描述了一個使用反射的解決方案。請注意,他明確表示這不是微軟官方支持的解決方案,但通過他博客帖子的評論來看,它似乎對某些人來說效果不錯。

+0

只是注意到有一個類似的問題http://stackoverflow.com/questions/12397/net-virtualpathproviders-and-pre-compilation,已經提到這個解決方案 – 2010-05-20 23:33:28

+0

謝謝你的回覆。我目前正在使用新的IIS 7.5的Warmup功能測試解決方案,並自動預加載所有頁面以強制編譯......但我很快就會嘗試。 非常感謝! – 2010-05-21 11:01:12

+1

這是令人難以置信的,這在.net 4中沒有改變 – DevelopingChris 2012-07-08 02:51:34