14.10. Prebuilding an ASP.NET Web SiteProgrammatically
Problem
You want to prebuild your web site to avoid compilation delays and to avoid the hosting scenario in which source code needs to be on the server.
Solution
Use the ClientBuildManager to prebuild your web site into an assembly. In order to prebuild the web site, you must specify:
The virtual directory for the web application.
The physical path to the web application directory.
The location where you want to build the web application.
Flags that help control the compilation.
To prebuild the web application in the sample code for the book, first retrieve the directory where the web application is located, and then provide a virtual directory name and a location for the web application to build to:
string cscbWebPath = GetWebAppPath( );
if(cscbWebPath.Length>0)
{
string appVirtualDir = @"CSCBWeb";
string appPhysicalSourceDir = cscbWebPath;
// Make the target an adjacent directory as it cannot be in the same tree
// or the build manager screams...
string appPhysicalTargetDir = Path.GetDirectoryName(cscbWebPath) + @"\ BuildCSCB";Next, set up the flags for the compile using the PrecompilationFlags enumeration. The PrecompilationFlags values are listed in Table 14-2.
Table 14-2. PrecompilationFlags enumeration values
Flag value | Purpose |
|---|---|
| Add the APTC attribute to the built assembly. |
| Remove any existing compiled image. |
| Build for code analysis. |
| Use the default compile options. |
| DelaySign ... |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access