aspnet_compiler 是一个把整个网站进行编译的工具。


aspnet_compiler_assembly

C:WINNTMicrosoft.NETFramework2
.0.40607
>aspnet_compiler -?
Utility to precompile an ASP.NET application
Copyright ( c ) Microsoft Corporation
2001
-
2003
. All rights reserved.

Usage:
aspnet_compiler
[
-?
]

[
-m metabasePath | -v virtualPath [-p physicalDir
]
]

[
targetDir
]

-? Prints this help text.
-m The full IIS metabase path of the application. This switch cannot
be combined with the -v or -p switches.
-v The virtual path of the application to be compiled (e.g.

"
/MyApp
"
). If -p is specified
,
the physical path is used to locate
the application. Otherwise
,
the IIS metabase is used
,
and the
application is assumed to be in the default site (under

"
/LM/W3SVC/1/Root
"
). This switch cannot be combined with the -m
switch.
-p The physical path of the application to be compiled. If -p is
missing
,
the IIS metabase is used to locate the app.
-nologo Suppress compiler copyright message.
targetDir The physical path to which the application is compiled. If not
specified
,
the application is precompiled in-place.

Examples:

The following two commands are equivalent
,
and rely on the IIS metabase. The
compiled application is deployed to c:MyTarget:
aspnet_compiler -m /LM/W3SVC/
1
/Root/MyApp c:MyTarget
aspnet_compiler -v /MyApp c:MyTarget

The following command compiles the application /MyApp in-place. The effect is
that no more compilations will be needed when HTTP requests are sent to it:
aspnet_compiler -v /MyApp

The following command does *not* rely on the IIS metabase
,
as it explicitly
specifies the physical source directory of the application:
aspnet_compiler -v /MyApp -p c:myapp c:MyTarget




运行C:/WINNT/Microsoft.NET/Framework/v2.0.40607>aspnet_compiler -v /djlp1 -p H:/Websites/DljPortal c:/dljp1 之后,

在 c:/dljp1 生成了一个目录,里面有 bin 目录,有data目录,还有其他文件都复制了过去了。

bin目录下多了几个dll文件:__code7jyhe1in.dll __DljPortalltzbmqxr.dll __resources9y3reyon.dll default.aspx.cdcab7d2.compiled global.asax.compiled global.asax7xyenj3t.dll ...

而以前的 default.aspx 现在的内容变成:This is a marker file generated by the precompilation tool, and should not be deleted!

不过这个 c:/dljp1 是不会自动变成 ​​http://localhost/dljp1​​ 的。这还要自己去添加。

web.config 里的信息没有变。 不过这次 codeSubDirectories/ 这个设置没有提示错误了。。

最难得的是global.asax已经失踪了,这个文件将在bin目录下用global.asax.compiled来指定。内容是:

aspnet_compiler_compiler_02

<  preserve resultType
=
"
3
"
virtualPath
=
"
/djlp1/global.asax
"
hash
=
"
fffffffac7751c8c
"

filehash =
"
ffffd6a40be55434
"
assembly
=
"
global.asaxx5e9jbd0
"
type
=
"
ASP.Global_asax
"
>

<
filedeps
>

<
filedep name
=
"
/djlp1/global.asax
"

/>

</
filedeps
>

</
preserve
>