Rider 2019.3.1 发布,支持构建 .NET Core 3 项目

by admin on 2020年2月15日

澳门新葡亰网址下载 1

Rider 2019.3.1 发布了。Rider 是一个跨平台 .NET IDE。 

.net跨平台前世今生

澳门新葡亰网址下载 2

.NET Core And .NET Framework

.NET core
1.0并不是对原有的.net平台的升级,而是一次全新的重写,这个开发过程微软也史无前例的采用了全面开源的做法,在github上接受全球开发者的pull
request。从上图可以看出,.NET core与现有的.net
framework是并行的,是完全独立发展的一套开发平台。与之前的.net
framework最大的区别在于跨平台,同时支持Windows/macOS/Linux
这三大操作系统。在GitHub上.NET
Core的发布时间线可以看到在过去的2年里,微软一步步的将.NET
从Windows操作系统上剥离,逐步添加了对macOS和Linux操作系统的支持,同时与开源社区的合作也在逐步加深。

  1. 2014年7月 - 微软在github上发布了asp.net vNext(也就是asp.net
    5)的前身,这时还是alpha阶段
  2. 2014年11月 - 发布了beta1,并且开始使用asp.net 5的名称
  3. 2015年10月 -
    发布了beta8,这是最后的一个beta版本,这一年的时间里,微软逐步提供了对于macOS和Linux操作系统的支持;同时随着
    Visual Studio Code
    这个跨平台代码编辑器的流行,大家慢慢开始关注asp.net 5
  4. 2015年11月 - 发布了RC1,标志着asp.net
    5基本具备了使用在生产环境的能力
  5. 2016年6月27日 -
    在RedHat全栈开发者大会DevNation上,微软与RedHat携手发布了Asp.net
    Core 1.0,标志着微软这一跨平台开发工具的正式发布

澳门新葡亰网址下载,Rider 2019.2.1 发布了,这是针对 2019.2 的修复版本,包含以下错误修复:

澳门新葡亰网址下载 3

.net core

.net core 是一个通用的,模块化的,跨平台并且开源的
.NET标准的实现。它包含来一个运行时,基础框架类库,编译器和一些工具以支持不同的CPU和操作系统。

项目的GitHub地址:

  1. Base Class
    Libraries
  2. CoreCLR runtime and RyuJIT
    compiler
  3. Roslyn
    compiler
  4. CLI
    tools
  • 合并 DataGrip
    的修复程序,以停止导致完全冻结的高内存使用
  • Enter、Tab 和 Space 再次完成代码完成中的所选项目
  • 现在,在 Visual Studio 安装中捆绑的 MSBuild
    在自动检测中成为首选,它取代了在 Rider 安装中捆绑的 MSBuild

这是一个热更新版本,修复了以下问题:

发布计划

  1. 2016.6 发布1.0
  2. 2016秋季 发布1.1

发布公告:

  • 即使未安装最新的 Mono,在 Linux 的 NuGet
    工具窗口中也可以再次执行添加、更新、更改和其它操作。
  • 在解决方案中启用 Roslyn Analyzers 不再挂起代码分析。
  • 导入/导出设置问题修复。
  • 绑定的 MSBuild 版本已更新,以支持构建 .NET Core 3 项目。
  • Unity 支持中有一些修复程序。
  • 现在在具有许多列的数据库表视图/编辑器中滚动起来更快。

1.1计划

  1. 广泛的API支持,让.NET Framewok和Mono在BCL级别上等价。
  2. 过渡把MSBuild和的csproj作为.NET的所有版本的默认生成系统和项目模型。

更新说明:

Version 1.0 OS Support:

OS Version Architectures
Windows Client 7 SP1 – 10 x64, x86
Windows Server 2008 R2 SP1 – 2016 x64, x86
Red Hat Enterprise Linux 7.2 x64
Fedora 23 x64
Debian 8.2 x64
Ubuntu 14.04 LTS, 16.04 LTS x64
Linux Mint 17 x64
openSUSE 13.2 x64
Centos 7.1 x64
Oracle Linux 7.1 x64
Mac OS X 10.11 (El Capitan) x64

https://blog.jetbrains.com/dotnet/2019/12/20/rider-2019-3-1

.net standard

  • .NET Standard Library 是所有.NET运行时.NET
    API的正式规范,目的是为.NET 生态系统建立更大的统一性。
  • .NET Standard Library实现了以下主要方案:

1. 定义了统一的BCL APIS(标准类库接口),所有的.NET平台去实现它,独立的工作量
2. 允许开发人员编写可移植类库,使用相同的API运行在跨.NET 运行时上。
3. 减少和消除那些希望共享源代码的但是需要加入编译预处理命令做条件编译的的.NET API和那些仅适用于OS的API。

各种.NET运行时实现了.NET标准库的特定版本。每个.NET运行时版本发布,它支持最高.NET标准版,这意味着它也支持以前的版本的声明。(向下兼容)

例如:
.NET Framework 4.6 实现.NET Standard Library 1.3,那么意味着 它支持.NET
Standard Library versions 1.0 through 1.3.又比如.NET Framework 4.6.2
实现 .NET Standard Library 1.5,while .NET Core 1.0 实现了 .NET Standard
Library 1.6.

(文/开源中国)    

.NET Standard关系图
Target Platform Name Alias
.NET Platform Standard netstandard 1.0 1.1 1.2 1.3 1.4 1.5 1.6
.NET Core netcoreapp 1.0
.NET Framework net 4.6.3
4.6.2
4.6.1
4.6
4.5.2
4.5.1
4.5
Universal Windows Platform uap 10.0
Windows win 8.1
8.0
Windows Phone wpa 8.1
Windows Phone Silverlight wp 8.1
8.0
Mono/Xamarin Platforms *
Mono *

NuGet

.NET Platform Standard version mapping
.NET Platform Standard version NuGet identifier
1.0 – 1.6 netstandard1.0 – netstandard1.6
Specific platform mapping
Platform NuGet identifier
.NET Framework 2.0 – 4.6 net20 – net46
.NET Core netcoreapp
.NET Micro Framework netmf
Windows 8 win8, netcore45
Windows 8.1 win8, netcore451
Windows Phone Silverlight (8, 8.1) wp8, wp81
Windows Phone 8.1 wpa8.1
Universal Windows Platform 10 uap10.0, netcore50
Silverlight 4, 5 sl4, sl5
MonoAndroid monoandroid
MonoTouch monotouch
MonoMac monomac
Xamarin iOS xamarinios
Xamarin PlayStation 3 xamarinpsthree
Xamarin PlayStation 4 xamarinpsfour
Xamarin PlayStation Vita xamarinpsvita
Xamarin Watch OS xamarinwatchos
Xamarin TV OS xamarintvos
Xamarin Xbox 360 xamarinxboxthreesixty
Xamarin Xbox One xamarinxboxone
弃用的包名
Platform Deprecated NuGet identifier Current NuGet identifier
ASP.NET 5.0 on .NET Framework aspnet50 net46
ASP.NET 5.0 on .NET Core aspnetcore50 netcoreapp1.0
DNX on .NET Framework 4.5.1 – 4.6 dnx451 – dnx46 net451 – net46
DNX on .NET Core 5.0 dnxcore50 netcoreapp1.0
.NET Standard Application 1.5 netstandardapp1.5 netcoreapp1.0
.NET Platform 5.1 – 5.6 dotnet5.1 – dotnet5.6 netstandard1.0 – netstandard1.5
.NET Platform 5.0 dotnet netstandard1.3
Windows 8 winrt win8 or netcore45

.NET Standard
Library文档
更多相关说明

环境搭建

windows

最好的方式:
  1. Visual Studio 2015 Update
    3
  2. .NET Core 1.0.0 – VS 2015 Tooling Preview
    2

ps:如果已经安装了 vs2015 update3 在安装.NET Core 1.0.0 – VS 2015
Tooling Preview 2时还是提示没有安装update3,
可以使用“SKIP_VSU_CHECK=1”这个参数忽略vs的检查。
在命令行使用:
DotNetCore.1.0.0-VS2015Tools.Preview2.exe SKIP_VSU_CHECK=1
进行安装。

其他方式
  1. .NET Core SDK for
    Windows
  2. Visual Studio
    Code

Linux

可以通过下载源码编译安装,也可以通过包管理器安装,具体参考
官网教程

Mac

  1. 安装Homebrew
  2. 安装一些依赖环境

brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
  1. 安装.Net Core SDK
    最好的方式就是下载pkg的包进行安装
    .Net Core
    SDK
    安装好之后会将工具的路径加入到PATH中。

装好环境后用运行命令 dotnet 进行检验

dotnet命令介绍

  1. dotnet new 初始化一个 .NET项目
  2. dotnet restore 使用NuGet还原在项目文件project.json
    中定义的依赖关系和项目特定的工具。
    注:运行 dotnet 还原生成一个锁文件 project.json.lock,其中包括有关所有被恢复的软件包的详细的信息。
  3. dotnet build 生成.NET项目

build命令会把项目和他所依赖的项目编译成一个二进制文件,默认情况下二进制文件是IL 和.dll 为文件扩展名。编译过程依赖于已经存在锁文件project.json.lock,这是restore命令生成的。
为了生成一个可执行的应用程序,您需要确保该项目配置的编译选项设置应用的入口点︰
 "buildOptions": {
    "emitEntryPoint": true
  }
  1. dotnet run 编译执行一个.NET项目
  2. dotnet pack 创建一个nuget包

pack命令编译项目并生成NuGet包,该操作会生成两个NuGet程序包:
一个包括已编译代码的程序集文件
一个包括调试符号和已编译代码的程序集文件
项目依赖的NuGet项目添加到生成nuspec文件中,默认情况不打包项目之间的引用关系,但可以通过更改项目的相关性类型。
  1. dotnet test 用Test运行工具运行项目中指定的单元测试
  2. dotnet publish 发布.NET项目(包括运行时)

发布命令会编译应用程序并读取项目文件,
然后将结果集的文件发布到一个目录。生成目录的内容将取决于项目的类型,但可以包括一个跨平台的 IL 应用程序和他依赖项,
这就是通常用的Portable部署方式,
应用程序共享.NET Core运行时环境与程序集依赖,
部署的目标机器上需要事先安装.NET Core SDK,
然后用dotnet命令运行程序。或者是每个本机平台的子文件夹或自包含的应用程序,
其中包括目标平台的运行时,这就是Self-contained部署方式。
Self-contained部署方式就是每个应用程序自带.NET Core运行时环境与程序集依赖,
部署的目标机器不需要安装.NET Core SDK,将应用程序文件夹拷贝过来就能运行。
默认的project.json编译出来的应用没有包括跨平台,需要修改project.json文件,需要在 project.json 加入 runtimes 节点 注释掉 "type": "platform"。

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {"hwapp":"1.0.0"},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.0"
        }
      },
      "imports": "dnxcore50"
     }
    },

   "runtimes":{
      "win7-x64": { },
      "win7-x86": { },
      "osx.10.10-x64": { },
      "osx.10.11-x64": { },
      "ubuntu.14.04-x64":{ },
      "centos.7-x64":{}
   }

}

具体参考文档参考文档
.NET Core Application
Deployment
project.json文档
Global.json文档

具体的用法可以通过
dotnet [new|restore|build|run|pack|publish|test] -h 获取

参考 .NET Core系列 : 1、.NET Core
环境搭建和命令行CLI入门

IDE推荐

  1. Visual Studio 2015
  2. Visual Studio Code
  3. Project Rider(JetBrains)
Project Rider简介

Project Rider项目呢是一个新的C#的IDE,它基于IntelliJ和Resharper。
目前的话它打开和识别项目依赖于.sln 和 .xproj 和.csproj文件。但是.net
core项目使用global.json和project.json文件来描述解决方案和项目。以后的话对于.net
core的程序,依赖于global.json和project.json文件识别项目。

DNX projects use a global.json and project.json files to describe
a solution and projects. Rider cannot yet open DNX projects based on
these files, and requires a .sln file and all projects to also have
a .xproj file. These can be generated by opening the solution in
Visual Studio. Rider itself does not use these MSBuild files, but
talks directly to the DNX Design Time Host. Future builds will open
DNX projects based on global.json and project.json.

根据最新的消息,.net core
项目组要取消project.json和global.json,重新使用MSBuild和.csproj

News: Project.json for ASP.NET Core is going
away
Farewell project.json – hello MSBuild and .csproj (.NET
Core)

用dotnet命令 创建一个.netcore控制台项目

mkdir dotnetcoreapp
cd dotnetcoreapp
dotnet new 
dotnet restore
dotnet run

Project dotnetcoreapp (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling dotnetcoreapp for .NETCoreApp,Version=v1.0

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:01.4853106


Hello World!

项目结构如下所示:

├── Program.cs
├── bin
│   └── Debug
│       └── netcoreapp1.0
│           ├── dotnetcoreapp.deps.json
│           ├── dotnetcoreapp.dll
│           ├── dotnetcoreapp.pdb
│           ├── dotnetcoreapp.runtimeconfig.dev.json
│           └── dotnetcoreapp.runtimeconfig.json
├── obj
│   └── Debug
│       └── netcoreapp1.0
│           ├── dotnet-compile-csc.rsp
│           ├── dotnet-compile.assemblyinfo.cs
│           └── dotnet-compile.rsp
├── project.json
└── project.lock.json

用dotnet命令 创建一个.netcore Web项目,再用vs code进行debug

mkdir dotnetcoreapp
cd dotnetcoreapp
dotnet new -t Web
dotnet restore
dotnet run

Project dotnetcoreapp (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling dotnetcoreapp for .NETCoreApp,Version=v1.0

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:03.9491092


info: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0]
      User profile is available. Using '/Users/cjt908/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
Hosting environment: Production
Content root path: /Users/cjt908/Desktop/dotnetcoreapp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

澳门新葡亰网址下载 4

运行图

  1. 用vs code 打开项目
    当我们第一次打开的时候,会出现缺少debug文件,点击yes即可。
![](https://upload-images.jianshu.io/upload_images/1366493-25e0bdf50d5324c3.png)

缺少配置文件提示



此时会会生成一个隐藏的文件夹,里面有两个配置文件。



![](https://upload-images.jianshu.io/upload_images/1366493-bb10b24f2a360bc5.png)

配置文件
  1. 修改HomeController里的Index方法,然后断点调试。
    提示分两种,一种是直接启动web调试,另外一种是附加进程调试,跟visual
    studio里面的类似。
![](https://upload-images.jianshu.io/upload_images/1366493-3d40b97c015ee5fd.png)

调试模式

澳门新葡亰网址下载 5

断点调试和监控变量

用Project Rider创建一个netcore项目

  1. 去JetBrains官网填写一些个人信息,然后订阅一下,就会收到一份邮件,里面有相关下载的链接,下载好之后进行安装。
  2. 创建项目
![](https://upload-images.jianshu.io/upload_images/1366493-435dd069a18de04f.png)

软件的首页
  1. 创建一个.net core 项目
![](https://upload-images.jianshu.io/upload_images/1366493-7b39343aa8dbdfb5.png)

2.png

澳门新葡亰网址下载 6

创建好以后的界面

  1. 在Main方法里输出Hello World,并且编译运行。

澳门新葡亰网址下载 7

编译

但是会报错,
Unable to perform Build: Select toolset to perform build

但是我们通过命令去运行的话,是可以正常编译的。

这是因为目前Rider不能基于global.json和project.json识别项目。
我们需要MSBuild或者XBuild来编译项目。
注:因为微软弃用global.json和project.json,所以这个计划应该不会再继续执行。

最简单的解决方案,就是下载mono,安装包里自带里MSBuild,不怕麻烦的话也可以去github下载编译。

澳门新葡亰网址下载 8

执行效果图

澳门新葡亰网址下载 9

项目结构图

用visual studio 2015 创建一个简单的.netcore项目

这个难度最低,和平时操作无多大区别。

引用

.netcore开源
.net core
英文文档
Project Rider EAP
入门指南

ASP.NET Core

asp.net core
英文文档
asp.net core
中文文档

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图