16

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

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

3 回答 3

13

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

文档

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

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

于 2016-07-11T16:37:59.563 回答
12

这里有一个很好的 emitEntryPoint 答案:compileOptions.emitEntryPoint 是什么意思?

至于 preserveCompilationContext ASP.NET 文档声明它需要为真才能编译视图:https ://docs.asp.net/en/latest/migration/rc1-to-rtm.html

于 2016-07-10T23:41:03.657 回答
0

就我而言,ASP.NET Core 1.1,

“preserveCompilationContext”:真

在 9 秒内获得构建时间,设置为 false 后,构建时间变得更快,~1s。

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

参考:问题版本 1.1

于 2017-05-09T01:17:50.047 回答