如何预编译 Web 应用程序项目?

Posted

技术标签:

【中文标题】如何预编译 Web 应用程序项目?【英文标题】:How to precompile a Web Application project? 【发布时间】:2010-08-27 22:21:09 【问题描述】:

我最近听说您可以预编译 Web 应用程序项目。我的问题是如何?

现在,当我为我的 Web 应用程序执行 publish 并选择 only files needed to run this application 时,我将其发布,但它仍然包含我所有的 ASPX 页面,它仍然只会 JIT 编译页面。如何在将所有 ASPX 页面放到服务器上之前对其进行预编译?

【问题讨论】:

【参考方案1】:

您可以下载一个名为 Web 部署项目 (WDP) 的项目模板(VS2008 版本here),它增强了 Visual Studio 的构建和部署功能。这基本上包含了 aspnet_compile.exe 的功能,但允许您在整体解决方案中直观地执行此操作。

除了预编译之外,它还允许您做许多有趣的事情,例如配置文件替换(非常适合部署到不同的环境)和设置程序集的构建方式(每页、每站点等) .

关于此项目类型的两个优秀的 Scott Guthrie 博客:

VS2008工具公告: http://weblogs.asp.net/scottgu/archive/2008/01/28/vs-2008-web-deployment-project-support-released.aspx 工具的基本演练 (VS2005版本,​​不过基本上是 在 VS2008 中相同): http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx

我在一些 VS2005 和 VS2008 项目中使用过这种项目类型,它非常宝贵(尤其是对于那些遗留网站项目!!)。

我不知道这也在 MSDN 库中,但 here's 在 MSDN 中为 WDP 撰写了一篇不错的文章。

我希望这会有所帮助!

编辑: VS2005 和 VS2010 也存在 WDP。

【讨论】:

每个人都应该知道,在 VS2010 中,Web 部署项目中存在一个错误,导致它构建所有文件,包括那些在项目中“排除”的文件。如果您使用排除的文件,这将非常烦人,并且有效地破坏了这种方法。 如果有一种方法可以自定义发布命令以进行预编译...【参考方案2】:

不幸的是,执行此操作的方法并不出色。您必须在本地“部署”解决方案,然后移动它,或者只是在它所在的服务器上编译它。无论哪种方式都使用 aspnet_compiler.exe。详情请见http://msdn.microsoft.com/en-us/library/ms227976%28v=VS.90%29.aspx。

【讨论】:

【参考方案3】:

当您发布站点时,取消选中“允许此预编译站点可更新”选项。

【讨论】:

这仅适用于“网站”项目。不是“网络应用程序”

以上是关于如何预编译 Web 应用程序项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用命令行msbuild部署VS2012网站项目而不进行预编译?

如何获得 TFS 构建以使用保存的发布配置文件预编译 Web 应用程序?

在预编译项目/库的其余部分时动态编译App_Code中的类

在 ASP.NET MVC Web 应用程序中包含预编译的视图

如何在 Spring Boot 应用程序中预编译 jsp?

预编译标题问题