这里介绍两种发布方式
1:使用开发工具中的 CopySite功能。
其实他还是一个XCopy,就是多了 同步文件/连接站点 等功能。还是把所有源代码一起发布了
2:使用 预编译部署
这一个就走向另外一个极端:发布的时候只有dll文件,没有任何源代码,甚至是html代码也没有。
使用方式:打开asp.net2.0的sdk的Command Prompt或者找到windows/miscorsoft.net/framework/v2.0/目录下,开始运行aspnet_compiler.exe。这个程序就可以进行预编译。aspnet_compiler.exe -?可以显示出这个命令的帮助。
介绍一种格式:aspnet_compiler -v /<websitename> -p <source> <destination>
比如:aspnet_compiler -v /form.ui.web -p c:/websites/form.ui.web c:/websites/deployment 该命令把虚拟目录名字叫做form.ui.web位于c:/websites/form.ui.web 目录下的程序预编译到c:/websites/deployment 目录下。
编译之后:
1:所有的.aspx页面成了这种东西:
This is a marker file generated by the precompilation tool, and should not be deleted!
这个文件的作用只是标记它存在,通过IIS可以访问到,仅此而已,其内容已经全部被编译到dll中,bin目录下有一个default.aspx.cdcab7d2.compiled文件存在
2:所有的ascx控件“消失”了,同时在Bin里面,多出来好多.compiled文件,其中一个文件内容如下:
<preserve resultType="3" virtualPath="/form.ui.web/configFiles/IPS/InformationCreate.ascx" hash="bdca4e266" filehash="1879aaf63513" flags="10000" assembly="App_Web_x_lehwbd" type="ASP.InformationCreate_ascx">
<filedeps>
<filedep name="/form.ui.web/configFiles/IPS/InformationCreate.ascx" />
</filedeps>
</preserve>
也就是说在执行的时候,会根据这里的声明,从程序集里面读取这个文件。
一开始还担心我里面的调用ascx的代码会出错,因为我都是Control.Load(path); 万一没有了ascx文件,岂不是Load不到了? 看来是杞人忧天了,没有一点问题。
3:资源文件和以前差不多,被编译到bin目录下的若干个子目录下,比如zn-ch什么的。
4:global、masterpage和theme文件也是类似的,出现了App_global.asax.compiled、default01.master.28fa1680.compiled、Theme_DefaultTheme.compiled等文件
1:使用开发工具中的 CopySite功能。
其实他还是一个XCopy,就是多了 同步文件/连接站点 等功能。还是把所有源代码一起发布了
2:使用 预编译部署
这一个就走向另外一个极端:发布的时候只有dll文件,没有任何源代码,甚至是html代码也没有。
使用方式:打开asp.net2.0的sdk的Command Prompt或者找到windows/miscorsoft.net/framework/v2.0/目录下,开始运行aspnet_compiler.exe。这个程序就可以进行预编译。aspnet_compiler.exe -?可以显示出这个命令的帮助。
介绍一种格式:aspnet_compiler -v /<websitename> -p <source> <destination>
比如:aspnet_compiler -v /form.ui.web -p c:/websites/form.ui.web c:/websites/deployment 该命令把虚拟目录名字叫做form.ui.web位于c:/websites/form.ui.web 目录下的程序预编译到c:/websites/deployment 目录下。
编译之后:
1:所有的.aspx页面成了这种东西:
This is a marker file generated by the precompilation tool, and should not be deleted!
这个文件的作用只是标记它存在,通过IIS可以访问到,仅此而已,其内容已经全部被编译到dll中,bin目录下有一个default.aspx.cdcab7d2.compiled文件存在
2:所有的ascx控件“消失”了,同时在Bin里面,多出来好多.compiled文件,其中一个文件内容如下:
<preserve resultType="3" virtualPath="/form.ui.web/configFiles/IPS/InformationCreate.ascx" hash="bdca4e266" filehash="1879aaf63513" flags="10000" assembly="App_Web_x_lehwbd" type="ASP.InformationCreate_ascx">
<filedeps>
<filedep name="/form.ui.web/configFiles/IPS/InformationCreate.ascx" />
</filedeps>
</preserve>
也就是说在执行的时候,会根据这里的声明,从程序集里面读取这个文件。
一开始还担心我里面的调用ascx的代码会出错,因为我都是Control.Load(path); 万一没有了ascx文件,岂不是Load不到了? 看来是杞人忧天了,没有一点问题。
3:资源文件和以前差不多,被编译到bin目录下的若干个子目录下,比如zn-ch什么的。
4:global、masterpage和theme文件也是类似的,出现了App_global.asax.compiled、default01.master.28fa1680.compiled、Theme_DefaultTheme.compiled等文件