使用aspnet_compiler进行独立就地预编译

3
aspnet_compiler似乎有两种模式:
  1. 目标模式 - 整个站点被复制到目标文件夹,生成PrecompiledApp.config,生成的程序集进入target\bin,视图(可选)被替换为占位符。
  2. 就地模式 - 网站在其原始位置编译,不会生成PrecompiledApp.config,生成的程序集进入临时ASP.NET文件夹,视图保持不变。
是否可能触发就地预编译,但生成的程序集和配置也影响原始位置?
1个回答

1

这是不可能的。请注意,这两种模式针对的是非常不同的场景:

  1. 目标 模式是关于创建位,您可以将其部署到服务器上,以便它不必进行太多编译。请注意,根据您是否使其可更新(-u 开关),有两个子模式。
  2. 就地 模式仅涉及预热已经部署的站点,以便对其进行第一次请求时速度更快。另一种看待它的方式是手动请求站点中的所有页面来预热它,只是少了一些痛苦。

请注意,如果您在不可更新模式下执行 #1,则甚至会修改您的 .aspx(和相关)文件以成为存根。因此,显然,这不能在原地发生,因为这将删除您的原始 aspx 文件。

我并不是说拥有某种混合模式是不可想象的,该模式将执行目标模式的某些操作并将其保留在就地位中。只是这不是工具所针对的情况。


删除我的aspx(在这种情况下是cshtml)文件是可以接受的,而且比将整个Web应用程序(包括图像)复制到磁盘上的其他位置更可取。鉴于Web发布过程已经在打包之前复制了所有文件,额外的复制会导致大型网站的构建性能问题。无论如何,感谢确认。 - Richard Szalay
FYI,我还需要等待22个小时才能授予悬赏。 - Richard Szalay
如果您的目标是预编译Razor文件,您可能需要查看RazorGenerator(http://razorgenerator.codeplex.com/)。请注意,aspnet_compiler有点过时了,如果有替代方案,我不确定是否建议使用它。 - David Ebbo
我目前正在使用WPP的PrecompileBeforePublish,因此aspnet_compiler是其中的一部分。感谢您提供razorgenerator的信息,我会去看看它。 - Richard Szalay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接