gpt4 book ai didi

asp.net - 从命令行为 Visual Studio 网站项目运行等效于 "Build Page"的命令

转载 作者:行者123 更新时间:2023-12-04 06:16:28 25 4
gpt4 key购买 nike

Tip/Trick: Optimizing ASP.NET 2.0 Web Project Build Performance with VS 2005 中所述,Visual Studio 网站项目中可用的“构建页面”命令执行以下操作:

the solution will compile all of the class library projects like before, then compile the /app_code directory and Global.asax file, and then instead of re-verifying all pages within the web-site it will only verify the current page you are working on, and any user controls that the page references.



有没有办法从 msbuild 和/或命令行访问此功能?

我正在设置一个大型 Visual Studio 网站项目(基于 Kentico CMS)的自动构建,其中包括:
  • 大量 CMS 相关页面和我们不更改的用户控件
  • 我们正在积极开发的少量自定义“Web 部件”用户控件,均位于网站内的 CMSWebParts/Custom 目录中

  • 使用 aspnet_compiler 预编译整个站点最多需要 10 分钟,这对于提交构建来说太慢了。理想情况下,我想介绍一个仅预编译我们的自定义代码的步骤。请注意,我们实际上并未部署预编译的输出(不推荐用于 Kentico 站点),此步骤仅用于验证 .ascx 文件中的代码。

    最佳答案

    我发现减少大型网站小改动的预编译时间的最好方法是使用 ASP.Net 编译工具 (aspnet_compiler.exe) 和就地编译。

    我们的构建脚本使用以下命令运行该工具:

    aspnet_compiler.exe -v/-p C:\path\to\MyWebSite

    此命令指定网站的物理路径,但未设置 targetDir 选项,这会导致应用程序就地编译。

    就地编译的好处是,默认情况下,aspnet_compiler 将只编译自上次编译网站以来发生更改的文件(您可以使用 -c 选项强制它重新编译所有内容)。例如,当我第一次对网站运行上述命令时,大约需要 10 分钟才能运行。如果我然后更改单个文件并再次运行它,只需要 30 秒左右。

    您可能对编译工具如何“知道”哪些文件已更改感到好奇。就地编译不会修改正在编译的应用程序,即,您最终不会在 Web 应用程序的 bin 文件夹中得到 App_Web_xdqqvn5q.dll 和 default.aspx.cdcab7d2.compiled 之类的文件。输出实际上是在“Temporary ASP.NET Files”文件夹中生成的。当您指定物理路径(而不是 IIS 元数据库)时,将使用您的配置文件中的文件夹,例如C:\Users\your.name\AppData\Local\Temp\Temporary ASP.NET 文件。您的 Web 应用程序源代码与存储在临时 ASP.NET 文件中的数据进行交叉引用,以找出发生了什么变化。

    关于asp.net - 从命令行为 Visual Studio 网站项目运行等效于 "Build Page"的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174048/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com