I'm working on a website that I'd like to use in-place compilation on in order to make the first hit faster.  I'd like to use the ClientBuildManager.CompileFile method to do the in-place compilation so that I have control of the compiling process.  For a variety of reasons, this is the ideal way to compile this website.
Why Does IIS Build to a Different Subdirectory under "Temporary ASP.NET Files"?
When I compile a website file by file via ClientBuildManager.CompileFile method in an exe built for this purpose, the output goes to a Subdirectory under "Temporary ASP.NET Files".  However, when the website is hit later, IIS rebuilds the controls under a different subdirectory under "Temporary ASP.NET Files" rendering the previous in-place compilation worthless.  
Note: The assemblies created during in-place compilation under "Temporary ASP.NET Files" are left alone (still exist).
Note: Both the in-place compilation assemblies folder and IIS generated assemblies folder are under the same "Temporary ASP.NET Files" dir.
Example:
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\2ba591b9\[in-place compilation folder name]
 - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\2ba591b9\[IIS generated assemblies for website]\
 
ClientBuildManager.CompileFile Configuration
var buildParameter = new ClientBuildManagerParameter
   {
      PrecompilationFlags = PrecompilationFlags.Default,
   };
var clientBuildManager = new ClientBuildManager(
   RootVirtualPath, RootPhysicalPath, null, buildParameter);
...
clientBuildManager.CompileFile(relativeVirtualPath, callback);
Where RootVirtualPath is simply "" for the default website.  RootPhysicalPath points to the location on disk of the website.  relativeVirtualPath is of the form "~/myFile.aspx".  The callback is used to track progress.