web-dev-qa-db-ja.com

AzureWebアプリでASP.NETMVCビューをプリコンパイルします

AzureWebアプリでASP.NETMVCビューをプリコンパイルする方法はありますか(特にVSTSのリリース管理を介して公開された場合)?

各ビューが1回ヒットされると、その後、ページは非常に高速にレンダリングされます。しかし、その最初の遅延はユーザーにとって厄介なものになる可能性があり、各ページに触れるスクリプトを作成する方法はありません。

VSTSのビルド/リリースプロセスで何かを変更する必要があるかどうか(Visual Studio BuildビルドステップとAzure Web Appリリースタスクを使用しています)、またはで何かを実行する必要があるかどうかがわかりませんリリース後のAzureWeb Appインスタンス(またはその他のインスタンス)。

公開後にaspnet_compilerを呼び出す方法を見つけることが必要な場合があるようですが(クラウドサービスのWebロールに関してはそれを見てきました)、それを機能させることができません。

呼び出し

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot" 

azure Portalのコンソール経由は問題なく実行されますが(エラーがある場合はエラーが検出されます)、起動時間には影響しません。最初にビューを表示するのに時間がかかります。

だから多分それは正しい方向ではありません。

RazorGenerator(.MSBuild nugetパッケージを含む)を調べたところ、完全に機能させることができませんでしたが、リリース時にプリコンパイルするためだけに、プロジェクトに多くの変更を加えることを躊躇していました。

また、私は現在VSTSでGitではなくTFVCを使用しているため、Kudu/Git統合(一部の記事によるとプリコンパイルをトリガーするようです)は、私が知る限り利用できません。

他のアイデア?

21
Tim

「VisualStudioビルド」ステップで「/ p:PrecompileBeforePublish = true」引数を追加できます。 enter image description here

次に、タスクはビルドプロセス中にaspnet_compilerを呼び出し、展開用にプリコンパイルされた出力を生成します。

25

Visual Studio 2013以降では、[ビルド]-> [プロファイル]を選択します。プロファイルを選択し、「設定」を選択します。 [構成]の下にある[ファイルの公開オプション]を展開し、[公開中にプリコンパイルする]オプションをオンにします。

1
1c1cle