最初のヒットを速くするために、インプレースコンパイルを使用したいWebサイトに取り組んでいます。を使用したいのですがClientBuildManager
。CompileFile
インプレースコンパイルを実行して、コンパイルプロセスを制御できるようにする方法。さまざまな理由から、これはこのWebサイトをコンパイルするための理想的な方法です。
IISが「一時ASP.NETファイル」の下の別のサブディレクトリにビルドされるのはなぜですか?
を介してファイルごとにWebサイトをコンパイルする場合ClientBuildManager
。CompileFile
この目的のために構築されたexeのメソッドでは、出力は「TemporaryASP.NETFiles」の下のサブディレクトリに移動します。ただし、後でWebサイトにアクセスすると、IISは「TemporaryASP.NET Files」の下の別のサブディレクトリにあるコントロールを再構築し、以前のインプレースコンパイルを無価値にします。
注:「一時ASP.NETファイル」でインプレースコンパイル中に作成されたアセンブリはそのまま残されます(まだ存在します)。
注:インプレースコンパイルアセンブリフォルダーとIISで生成されたアセンブリフォルダーはどちらも、同じ「TemporaryASP.NETFiles」ディレクトリの下にあります。
例:
- C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 2ba591b9\[インプレースコンパイルフォルダー名]
- C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 2ba591b9\[ IISで生成されたWebサイト用のアセンブリ]\
ClientBuildManager
。CompileFile
構成
var buildParameter = new ClientBuildManagerParameter
{
PrecompilationFlags = PrecompilationFlags.Default,
};
var clientBuildManager = new ClientBuildManager(
RootVirtualPath, RootPhysicalPath, null, buildParameter);
...
clientBuildManager.CompileFile(relativeVirtualPath, callback);
デフォルトのWebサイトの場合RootVirtualPath
は単に「」です。 RootPhysicalPath
Webサイトのディスク上の場所を指します。 relativeVirtualPath
"〜/myFile.aspx"の形式です。コールバックは、進行状況を追跡するために使用されます。