C# buildOptions和PreserveComilationContext用于什么?

C# buildOptions和PreserveComilationContext用于什么?,c#,.net,asp.net-core,.net-core,project.json,C#,.net,Asp.net Core,.net Core,Project.json,我正在玩刚刚发布的ASP.NET内核。我已经创建了一个新项目,我正在查看project.json。我想知道这部分配置用于什么: "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true } emitEntryPoint的一个很好的答案是: 至于preserveCompilationContext,ASP.NET文档声明它必须为true才能编译视图:emittentryPoint用于让编译

我正在玩刚刚发布的ASP.NET内核。我已经创建了一个新项目,我正在查看
project.json
。我想知道这部分配置用于什么:

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

emitEntryPoint的一个很好的答案是:


至于preserveCompilationContext,ASP.NET文档声明它必须为true才能编译视图:

emittentryPoint用于让编译器知道它是应用程序,而不是库。换句话说,如果
emittentrypoint=true
,则必须有一个
公共静态void Main()

从:

如果设置为true,则创建可执行文件,否则项目将生成
.dll


PreserveComilationContext在上面的页面中还没有记录,但是当您使用Razor或任何其他类型的运行时编译时,它是必需的。没有它,Razor视图的运行时编译将失败。

在我的例子中,ASP.NET Core 1.1

“保留编译上下文”:true

在9秒内获得构建时间,设置为false后,构建时间加快,~1秒

我的应用程序仅适用于Web Api

参考: