首页 > 代码库 > 测试三

测试三

  之所以要写这个系列是因为在移植项目到ASP.NET Core平台的过程中,遇到了一些“新变化”,这些变化有编译方面的、有API方面的,今天要讲的是编译方面的一些问题。我把它们整理后分享出来,以便各位博友不要再遇到这些坑。

  在Dotnet Core RC2版本中,project.json 管理着整个项目,包括编译文件、依赖包管理、版本信息、平台依赖与发布等功能。

关于项目中引用:

比如我们一般看到Project.json中一般会有如下内容:

  1. "dependencies": {
  2. "Newtonsoft.Json": "8.0.3"
  3. }

这是一段标准的引用一个程序集的配置文件; 但是如果我们想引用的是一个解决方案中的其它项目,那应该如何编写呢?

  1. "dependencies": {
  2. "项目名称": {
  3. "target": "project",
  4. "type": "build"
  5. }
  6. }

 这样在编译这个项目的时候,也会将引用的项目一起编译。

编译文件:

buildOptions节点定义了如何编译和编译哪些文件等。

1. compile 节点 : 文件编译,是一个数组,确定一组要编译的文件进行定义, **.cs (默认) 表示 包含子目录下的所有.cs文件,如果要链接共用的代码进行编译的话可以在这个地方设置。 这种方式相当不错,直接可以引用另一个目录下的文件进行编译,非常方便!!!

2. defines 节点 : 编译变量的定义,用于条件编译,如多平台判断。

上段代码吧:

  1. "buildOptions": {
  2. "compile": [
  3. "*.cs",
  4. "../Mvc/**.cs"
  5. ]
  6. }

这段代码说明了,我们要编译本项目目录的所有.cs文件和上层Mvc项目目录及子目录的所有.cs文件。

编译宏:

  1. #if NET451
  2. #if NETCOREAPP1_0
  3. #if NETSTANDARD1_5

以上是三个平台的编译宏,大家一看就懂的。

最后:

其实说了半天以上都不是真的坑,在6月27号的RTM版本中,Project.json将不再存在,取代它的将是.csproj, 没错它又回来了!!!

不过MS也说了,要将上面这些新的特性加入到其中,所以还好吧,所以我们的踩坑记,还是蛮重要的,大家说是吧。

 

测试三