リリースされたばかりのASP.NET Coreで遊んでいます。新しいプロジェクトを作成し、project.json
。構成のこの部分は何ですか?
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
}
EmitEntryPointに対する良い答えはここにあります: compilationOptions.emitEntryPointはどういう意味ですか?
PreserveCompilationContextに関しては、ASP.NETドキュメントはビューをコンパイルするためにtrueである必要があると述べています: https://docs.asp.net/en/latest/migration/rc1-to-rtm.html
emitEntryPointは、ライブラリではなくアプリケーションであることをコンパイラに通知するために使用されます。つまり、_emitEntryPoint = true
_の場合、public static void Main()
が必要です。
docs から:
Trueに設定されている場合は実行可能ファイルを作成します。そうでない場合、プロジェクトは_
.dll
_を生成します。
preserveCompilationContextは上記のページには(まだ)記載されていませんが、Razorまたはその他のタイプのランタイムコンパイルを使用している場合は必須です。これがないと、Razorビューのランタイムコンパイルは失敗します。
私の場合、ASP.NET Core 1.1、
"preserveCompilationContext":true
ビルド時間を9秒で取得します。falseに設定すると、ビルド時間が短縮されます(約1秒)。
私のアプリケーションはWeb API専用です。
ref: issue version 1.1