什么是buildOptions和preserveCompilationContext用于?

时间:2016-07-10 22:09:56

标签: c# .net asp.net-core .net-core project.json

我正在玩刚刚发布的ASP.NET Core。我创建了新项目,我正在查看func tableView(tableView: UITableView, nodeBlockForRowAtIndexPath indexPath: NSIndexPath) -> ASCellNodeBlock { let photoModel = photoFeed[indexPath.row] let cellNodeBlock:() -> AScellNode = { let cellNode = PhotoCellNode(photoObject: photoModel) return cellNode } return cellNodeBlock } 。我想知道这部分配置是什么:

project.json

3 个答案:

答案 0 :(得分:13)

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

来自docs

  

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

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

答案 1 :(得分:10)

此处存在emitEntryPoint的一个很好的答案:What does compilationOptions.emitEntryPoint mean?

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

答案 2 :(得分:0)

就我而言,ASP.NET Core 1.1,

  

" preserveCompilationContext":true

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

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

参考:issue version 1.1