web-dev-qa-db-ja.com

buildOptionsとpreserveCompilationContextの用途は何ですか?

リリースされたばかりのASP.NET Coreで遊んでいます。新しいプロジェクトを作成し、project.json。構成のこの部分は何ですか?

"buildOptions": {
   "emitEntryPoint": true,
   "preserveCompilationContext": true
}
14
Andrei

EmitEntryPointに対する良い答えはここにあります: compilationOptions.emitEntryPointはどういう意味ですか?

PreserveCompilationContextに関しては、ASP.NETドキュメントはビューをコンパイルするためにtrueである必要があると述べています: https://docs.asp.net/en/latest/migration/rc1-to-rtm.html

11

emitEntryPointは、ライブラリではなくアプリケーションであることをコンパイラに通知するために使用されます。つまり、_emitEntryPoint = true_の場合、public static void Main()が必要です。

docs から:

Trueに設定されている場合は実行可能ファイルを作成します。そうでない場合、プロジェクトは_.dll_を生成します。

preserveCompilationContextは上記のページには(まだ)記載されていませんが、Razorまたはその他のタイプのランタイムコンパイルを使用している場合は必須です。これがないと、Razorビューのランタイムコンパイルは失敗します。

13
Nate Barbettini

私の場合、ASP.NET Core 1.1、

"preserveCompilationContext":true

ビルド時間を9秒で取得します。falseに設定すると、ビルド時間が短縮されます(約1秒)。

私のアプリケーションはWeb API専用です。

ref: issue version 1.1

0
Wagner Pereira