现在的位置: 首页 > 综合 > 正文

asp.net2.0程序的发布

2011年07月12日 ⁄ 综合 ⁄ 共 1384字 ⁄ 字号 评论关闭
这里介绍两种发布方式

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等文件

 

抱歉!评论已关闭.