隐锋的BLOG
ASP,.net开发

利用 ASP.NET 编译工具 (Aspnet_compiler.exe) 可以就地编译 ASP.NET Web 应用程序,也可以为部署到某个目标位置(例如成品服务器)编译 ASP.NET Web 应用程序。就地编译有助于提高应用程序的性能,因为在编译应用程序的过程中,最终用户可以避免第一次请求应用程序而导致的延迟。

可以通过以下两种方法之一执行用于部署的编译:一种方法移除所有源文件,例如代码隐藏文件和标记文件;另一种方法保留标记文件。

Note注意

早于 ASP.NET 2.0 版的 ASP.NET 版本中没有 ASP.NET 编译工具。

aspnet_compiler  [-?]
            [-m metabasePath | -v virtualPath [-p physicalPath]]
            [[-u] [-f] [-d] targetDir]
            [-c]
            [-errorstack]
            [-fixednames]
            [-nologo]
            [-keyfile file | -keycontainer container [-aptca] [-delaysign]]

Collapse 图像选项

选项 说明

-m metabasePath

指定要编译的应用程序的完整 IIS 元数据库路径。IIS 元数据库是用于配置 IIS 的分层信息存储区。例如,默认 IIS 网站的元数据库路径是 LM/W3SVC/1/ROOT。

此选项不能与 -v 选项或 -p 选项一起使用。

-v virtualPath

指定要编译的应用程序的虚拟路径。

如果还指定了 -p,则使用伴随的 physicalPath 参数的值来定位要编译的应用程序。否则,将使用 IIS 元数据库,并且此工具假定源文件位于默认网站(在 LM/W3SVC/1/ROOT 元数据库节点中指定)中。

此选项不能与 -m 选项一起使用。

-p physicalPath

指定包含要编译的应用程序的根目录的完整网络路径或完整本地磁盘路径。如果未指定 -p,则使用 IIS 元数据库来查找目录。

此选项必须与 -v 选项一起使用,不能与 -m 选项一起使用。

-u

指定 Aspnet_compiler.exe 应创建一个预编译的应用程序,该应用程序允许对内容(例如 .aspx 页)进行后续更新。

如果省略该选项,生成的应用程序将仅包含编译的文件,而无法在部署服务器上进行更新。只能通过更改源标记文件并重新编译来更新应用程序。

必须包括参数 targetDir

-f

指定该工具应该改写 targetDir 目录及其子目录中的现有文件。

-d

重写应用程序源配置文件中定义的设置,强制在编译的应用程序中包括调试信息。否则,将不会发出调试输出。

如果省略此选项,就地编译将在调试选项时使用配置设置。

targetDir

将包含编译的应用程序的根目录的网络路径或本地磁盘路径。如果未包括 targetDir 参数,则就地编译应用程序。

-c

指定应完全重新生成要编译的应用程序。已经编译的组件将重新进行编译。如果省略此选项,该工具将仅生成应用程序中自上次执行编译以来被修改的那些部分。

-errorstack

指定该工具应在未能编译应用程序时包括堆栈跟踪信息。

-keyfile file

指定应该将 AssemblyKeyFileAttribute(指示包含用于生成强名称的公钥/私钥对的文件名)应用于编译好的程序集。

如果代码文件中已经将该属性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-keycontainer container

指定应该将 AssemblyKeyNameAttribute(指示用于生成强名称的公钥/私钥对的容器名)应用于编译好的程序集。

如果代码文件中已经将该属性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-aptca

指定应该将 AllowPartiallyTrustedCallersAttribute(允许部分受信任的调用方访问程序集)应用于 Aspnet_compiler.exe 生成的具有强名称的程序集。

此选项必须与 -keyfile-keycontainer 选项一起使用。如果代码文件中已经将该属性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-delaysign

指定应该将 AssemblyDelaySignAttribute(指示应该只使用公钥标记对程序集进行签名,而不使用公钥/私钥对)应用于生成的程序集。

此选项必须与 -keyfile-keycontainer 选项一起使用。如果代码文件中已经将该属性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-fixednames

指定应该为应用程序中的每一页生成一个程序集。每个程序集的名称使用原始页的虚拟路径,除非此名称超过操作系统的文件名限制。如果超过限制,将生成一个哈希值,并将其用于程序集名称。不能将 -fixednames 选项用于就地编译。

-nologo

取消显示版权信息。

-?

显示该工具的命令语法和选项。

另一种方法:
发布网站
在“生成”菜单上单击“发布网站”。

在“发布网站”对话框中,单击省略号按钮 (…) 浏览至要发布网站的位置。

可将网站输出写入本地文件夹或共享文件夹、FTP 站点或者通过 URL 访问的网站。必须具有在目标位置创建和写入的权限。

若要能够在发布网站之后更改 .aspx 文件的布局(而非代码),请选择“允许更新此预编译网站”复选框。

若要使用密钥文件或密钥容器命名具有强名称的程序集,请选择“对预编译程序集启用强命名”复选框,然后单击“确定”。

发布状态显示在任务栏中。根据连接速度、站点的大小和内容文件的类型,发布时间可能不同。发布完成后,即显示“发布成功”状态。

posted on 2006-11-10 11:44  糊涂隐锋  阅读(414)  评论(0)    收藏  举报