ASP.NET 预编译笔记
本来下写篇总结,但感觉自己语言不知道怎么组织。就算了。
aspnet_compiler的问题:
一开始
aspnet_compiler -v \ -p F: E: -fixednames
error ASPRUNTIME: 目标目录不是空的。请手动删除该目录,或选择其他目标目录。
aspnet_compiler -v \ -f -p F: E: -fixednames
error ASPRUNTIME: 目标目录非空。并且似乎包含以前编译的应用程序。请手动删除该目录,或选择其他目标目录。
换别的目录
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config(132): error AS PCONFIG: 未能加载类型“System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider”。
算了,单纯命令行准备放弃治疗,后来发现VS2013在发布里面其实有预编译选项的,注意看ms build输出窗格的信息就知道VS怎么预编译了。后来想上面这个问题可能是我用了64位的aspnet_compiler有问题。我后来照着VS打是没问题的。
MVC动态View编译:
ASP.NET MVC以目录为单位的动态View编译,编译生成的程序集临时存放在ASP.NET的临时目录“%WinDir%\Microsoft.NET\Framework\{Version No}\Temporary ASP.NET Files\”下。比如我的就在
C:\Users\ABC\AppData\Local\Temp\Temporary ASP.NET Files.程序寄宿在IIS的话是在这个目录里的root里生成那类文件。VS的iis express则是vs子目录。
webform动态编译:
无
总结
按微软的说法,预编译最终用户可以避免第一次请求应用程序而导致的延迟。但实际上我体会不到。第一次请求依旧那么慢,而且后续的请求还是会编译缺失的view(也许是我之前弄错了?)我试过用RazorGenerator,但是失败了,结局没有实现其官方文档实现的效果。收获还是有的,我发现VS每改一遍代码然后生成,上文提到的临时目录里的profileoptimization.prof就会更新一遍,而第一次请求的时候,这个临时目录就会清空然后重新生成一遍。
我想最后最优解应该是增量编译吧。
参考链接:
DUDU:
http://www.cnblogs.com/dudu/archive/2011/02/07/aspnet_compiler_precompilation.html
MSDN:
http://msdn.microsoft.com/zh-cn/library/ms229863(v=vs.100).aspx
MVC
http://www.cnblogs.com/artech/archive/2012/09/04/razor-view-engine-01.html
ASP.NET
http://www.cnblogs.com/artech/archive/2007/05/26/760292.html
http://www.cnblogs.com/mqingqing123/archive/2006/03/06/343623.html
VS2012预编译选项(注意VS2013会有不同):
http://www.cnblogs.com/Ivony/archive/2011/10/26/2224696.html
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
ASP.NET 预编译笔记的更多相关文章
- ASP.NET 预编译
ASP.NET 预编译概述 https://msdn.microsoft.com/zh-cn/library/bb398860%28v=VS.90%29.aspx 如何:预编译 ASP.NET 网站以 ...
- asp.net 预编译和动态编译
在asp.net中,编译可以分为:动态编译Dynamical Compilation和预编译(Precompilation). 动态编译 深入剖析ASP.NET的编译原理之一:动态编译(Dynamic ...
- ASP.NET 预编译命令(解决发布后第一次访问慢问题)
ASP.NET 编译工具 (Aspnet_compiler.exe) 官方说明 新建bat文件 @echo off CD /d C:\Windows\Microsoft.NET\Framewo ...
- 关于ASP.NET预编译(转自dudu)
为什么要用预编译? 博客园博客程序中.aspx和.ascx文件总共加起来有3000多个(博客模板中有大量的.ascx文件).如果使用动态编译,每次只要更新bin文件夹中的任何一个dll文件,动态编译至 ...
- [转][ASP.NET]ASP.NET 预编译网站
[转自]https://msdn.microsoft.com/zh-cn/library/ms227430(v=vs.80).aspx C:\Windows\Microsoft.NET\Framewo ...
- ASP.NET 动态编译、预编译和 WebDeployment 项目(转)
概述 在 Web 服务器上,既可以部署源文件,也可以部署编译后程序集. 若部署源文件,则当用户访问时,Web 应用程序会被动态编译,并缓存该程序集,以便下次访问. 否则,若部署程序集,Web 应用程序 ...
- 体验 ASP.NET Core 1.1 中预编译 MVC Razor 视图
这是从 ASP.NET Core 1.1 官方发布博文中学到的一招,可以在 dontet publish 时将 Razor 视图编译为 .dll 文件. 需要在 project.json 中添加如下配 ...
- ASP.NET最误导人的错误提示:“未预编译文件,因此不能请求该文件”
昨天在一个ASP.NET MVC项目中,一个预编译后的视图访问时总是报错: 未预编译文件,因此不能请求该文件(The file has not been pre-compiled, and canno ...
- ASP.NET MVC5 视图预编译
ASP.NET MVC5 视图预编译 ASP.NET MVC5 视图预编译 关于Razor视图及引擎原理,就不多说了. 这里通俗或者不恰当地说,cshtml视图文件是先编译成dll文件,再通过视图 ...
随机推荐
- neutron openvswitch + vxlan 通讯
- jquery移动端一个按钮两个事件
当一个按钮已经有一个事件,如点击,弹窗显示,若还要加个事件,可以用touchstart 如: var videoCover = $("#videoCover");//视频封面 $( ...
- 二:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- debug 工具
git blame 查看某个文件的修改记录  二分查找确定 bug 来源 启动  输入 git bisect start,启动流程 输入 git bisect bad,标记当前是错误的 输入 gi ...
- D03——C语言基础学习PYTHON
C语言基础学习PYTHON——基础学习D03 20180804内容纲要: 1 函数的基本概念 2 函数的参数 3 函数的全局变量与局部变量 4 函数的返回值 5 递归函数 6 高阶函数 7 匿名函数 ...
- Python小白学习之路(二)—【Pycharm安装与配置】【创建项目】【运算符】【数据类型】
写在前面: 第二天的学习,感觉比昨天学习相对轻松一些,但是对于我这个编程语言功底很弱的人来说,还是稍稍微有些.....哈尔滨的天气一天天冷了下来,还飘着小雨,不过还是挺有意境的.充实而又忙碌的生活,让 ...
- 移动端 实现ul横向滚动条
ul { display: flex; width: 100%; height: 3.333333rem; background: #fff; padding: 0.373333rem 0.32rem ...
- 设置pip源头地址
更新pip源 1 . 可以直接在pip时加入参数 比如: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysqldb 2 . 修改默 ...
- Linux 线程占用CPU过高定位分析
今天朋友问我一个Linux程序CPU占用涨停了,该如何分析, CPU占用过高,模拟CPU占用过高的情况 先上一段代码: #include <iostream> #include <t ...
- 【Java并发编程】:深入Java内存模型——happen-before规则及其对DCL的分析
happen—before规则介绍 Java语言中有一个“先行发生”(happen—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其意思就是说, ...