什么是buildOptions和preserveCompilationContext用于?

And*_*rei 12 .net c# .net-core project.json asp.net-core

我正在玩刚刚发布的ASP.NET Core.我创建了新项目,我正在关注project.json.我想知道这部分配置是什么:

"buildOptions": {
   "emitEntryPoint": true,
   "preserveCompilationContext": true
}
Run Code Online (Sandbox Code Playgroud)

Nat*_*ini 13

emitEntryPoint用于让编译器知道它是应用程序,而不是库.换句话说,如果emitEntryPoint = true,你必须有一个public static void Main().

来自文档:

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

上面的页面(还)中没有记录preserveCompilationContext,但是在使用Razor或任何其他类型的运行时编译时需要它.没有它,Razor视图的运行时编译将失败.


小智 10

这里存在emitEntryPoint的一个很好的答案:compilationOptions.emitEntryPoint是什么意思?

对于preserveCompilationContext,ASP.NET文档说明为了编译视图需要为true:https://docs.asp.net/en/latest/migration/rc1-to-rtm.html