【发布时间】:2016-11-12 19:21:21
【问题描述】:
我正在使用刚刚发布的 ASP.NET Core。我创建了新项目,我正在查看project.json。我想知道这部分配置的用途:
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
}
【问题讨论】:
标签: c# .net asp.net-core .net-core project.json
我正在使用刚刚发布的 ASP.NET Core。我创建了新项目,我正在查看project.json。我想知道这部分配置的用途:
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
}
【问题讨论】:
标签: c# .net asp.net-core .net-core project.json
emitEntryPoint 用于让编译器知道它是一个应用程序,而不是一个库。换句话说,如果emitEntryPoint = true,你必须有一个public static void Main()。
来自docs:
如果设置为 true,则创建可执行文件,否则项目将生成
.dll。
preserveCompilationContext 没有记录在上面的页面中(还),但是当您使用 Razor 或任何其他类型的运行时编译时,它是必需的。没有它,Razor 视图的运行时编译将失败。
【讨论】:
这里有一个很好的 emitEntryPoint 答案:What does compilationOptions.emitEntryPoint mean?
对于preserveCompilationContext,ASP.NET 文档声明它需要为真才能编译视图:https://docs.asp.net/en/latest/migration/rc1-to-rtm.html
【讨论】:
在我的例子中,ASP.NET Core 1.1,
“preserveCompilationContext”:真
构建时间为 9 秒,设置为 false 后,构建时间更快,约 1 秒。
我的应用程序仅适用于 Web Api。
【讨论】: