前言:
之所以要写这个系列是因为在移植项目到ASP.NET Core平台的过程中,遇到了一些“新变化”,这些变化有编译方面的、有API方面的,今天要讲的是编译方面的一些问题。我把它们整理后分享出来,以便各位博友不要再遇到这些坑。
在Dotnet Core RC2版本中,project.json 管理着整个项目,包括编译文件、依赖包管理、版本信息、平台依赖与发布等功能。
关于项目中引用:
比如我们一般看到Project.json中一般会有如下内容:
"dependencies": { "Newtonsoft.Json": "8.0.3" }
这是一段标准的引用一个程序集的配置文件; 但是如果我们想引用的是一个解决方案中的其它项目,那应该如何编写呢?
"dependencies": { "项目名称": { "target": "project", "type": "build" } }
这样在编译这个项目的时候,也会将引用的项目一起编译。
编译文件:
buildOptions节点定义了如何编译和编译哪些文件等。
1. compile 节点 : 文件编译,是一个数组,确定一组要编译的文件进行定义, **.cs (默认) 表示 包含子目录下的所有.cs文件,如果要链接共用的代码进行编译的话可以在这个地方设置。 这种方式相当不错,直接可以引用另一个目录下的文件进行编译,非常方便!!!
2. defines 节点 : 编译变量的定义,用于条件编译,如多平台判断。
上段代码吧:
"buildOptions": { "compile": [ "*.cs", "../Mvc/**.cs" ] }
这段代码说明了,我们要编译本项目目录的所有.cs文件和上层Mvc项目目录及子目录的所有.cs文件。
编译宏:
#if NET451 #if NETCOREAPP1_0 #if NETSTANDARD1_5
以上是三个平台的编译宏,大家一看就懂的。
最后:
其实说了半天以上都不是真的坑,在6月27号的RTM版本中,Project.json将不再存在,取代它的将是.csproj, 没错它又回来了!!!
不过MS也说了,要将上面这些新的特性加入到其中,所以还好吧,所以我们的踩坑记,还是蛮重要的,大家说是吧。
时间: 2024-10-22 19:09:18