2023年9月19日火曜日

ASP.NET Web アプリケーションをプリコンパイルする方法

ASP.NET Web アプリケーションでは、
最初の待機時間を避けるために、Microsoft .NET Framework は ASP.NET アプリケーションをプリコンパイルすることができます。

プリコンパイルをすると、

初回アクセス時にビューのコンパイルが行われない為、デプロイ直後でも高速に動作してくれます。

詳しい説明は、
https://atmarkit.itmedia.co.jp/fdotnet/asp2review/asp2review01/asp2review01_03.html
のサイトを一読すると理解しやすいです。
 

コンパイルの仕方については、

 https://esrij-esri-support.custhelp.com/app/answers/detail/a_id/2636/~/asp.net-web-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E3%83%97%E3%83%AA%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

に書いていあるコマンドライン ツールをつかってみたがうまくいかなかった(原因分からず、下の設定で作成されるFolderProfile.pubxmlがあやしそう(このファイルを開くと、<PrecompileBeforePublish>True</PrecompileBeforePublish>の設定があるので、この設定次第でかわりそうです))

aspnet_compiler -v /


こちらのサイトで書いてあるように、VSの発行設定(メニュー「ビルド」「***(プロジェクト名)の発行」をおこなうとうまくいくのでこちらを使った方がよさそうです。

https://blog.shibayan.jp/entry/20130914/1379146598


仕事では、実際にはJenkinsを通して、プリコンパイルモジュールを作成してまして、設定としては、以下を行うことでプリコンパイルモジュール作成することができました。
・Jenkinsのノードのサーバで、VS立ち上げて、「発行」で「プリコンパイル」設定してビルドする
・VSのコンソールに出力される内容をJenkinsの設定に追加する
aspnet_compilerを追加(引数に注意)、Web.configコピーの追加)
・コンパイルするブランチの修正(FolderProfile.pubxmlなど更新

【追加設定】

del %WORKSPACE%\プロジェクト\obj\Release\AspnetCompileMerge\TempBuildDir /Q /s

COPY %WORKSPACE%\プロジェクト\Web.Release.config  %WORKSPACE%\プロジェクト\obj\Release\TransformWebConfig\transformed\Web.config

C:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p %WORKSPACE%\プロジェクト\obj\Release\AspnetCompileMerge\Source %WORKSPACE%\プロジェクト\TempBuildDir



0 件のコメント:

コメントを投稿