开始DotNetCore之旅

 

下载.NetCore SDK

从Microsoft官方网站下载最新的DotNetCore SDK. 目前最新的版本是2.1

https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial

下载最新的VSCode, 学习.netCore 为什么要选择VSCode. 轻量,简单的风格令人耳目一新,几乎支持目前所有的编程语言,丰富的扩展,只占用极少的计算机资源。

安装c# 相关扩展

除了最基本的C#扩展,我还额外安装了Powershell的扩展(因每个人需求不同自定义)


认识NetCore

首先需要配置dotnet sdk 的环境变量,有的版本需要配置,有的不需要

在cmd中使用命令 dotnet -h 列出.netCore相关命令 

new              Initialize .NET projects. (初始化一个.netcore 的 工程)
  restore          Restore dependencies specified in the .NET project. (还原.net工程之间的以来)
  run              Compiles and immediately executes a .NET project. (编译工程并且执行)
  build            Builds a .NET project. (编译)
  publish          Publishes a .NET project for deployment (including the runtime). (发布)
  test             Runs unit tests using the test runner specified in the project. (执行测试)
  pack             Creates a NuGet package. (创建 NuGet 包)
  migrate          Migrates a project.json based project to a msbuild based project. (从一个.json定义的项目迁移成传统的基于msbuild的项目)
  clean            Clean build output(s). (清理项目)
  sln              Modify solution (SLN) files. (解决方案相关操作)
  add              Add reference to the project. 
  remove           Remove reference from the project.
  list             List reference in the project.
  nuget            Provides additional NuGet commands. 
  msbuild          Runs Microsoft Build Engine (MSBuild). 
  vstest           Runs Microsoft Test Execution Command Line Tool.

 

接下来使用 dotnet new -h 指令, 查看new 指令的创建类型

Templates                                         Short Name       Language          Tags
--------------------------------------------------------------------------------------------------------
Console Application                               console          [C#], F#, VB      Common/Console
Class library                                     classlib         [C#], F#, VB      Common/Library
Unit Test Project                                 mstest           [C#], F#, VB      Test/MSTest
xUnit Test Project                                xunit            [C#], F#, VB      Test/xUnit
ASP.NET Core Empty                                web              [C#], F#          Web/Empty
ASP.NET Core Web App (Model-View-Controller)      mvc              [C#], F#          Web/MVC
ASP.NET Core Web App                              razor            [C#]              Web/MVC/Razor Pages
ASP.NET Core with Angular                         angular          [C#]              Web/MVC/SPA
ASP.NET Core with React.js                        react            [C#]              Web/MVC/SPA
ASP.NET Core with React.js and Redux              reactredux       [C#]              Web/MVC/SPA
ASP.NET Core Web API                              webapi           [C#], F#          Web/WebAPI
global.json file                                  globaljson                         Config
Nuget Config                                      nugetconfig                        Config
Web Config                                        webconfig                          Config
Solution File                                     sln                                Solution
Razor Page                                        page                               Web/ASP.NET
MVC ViewImports                                   viewimports                        Web/ASP.NET
MVC ViewStart                                     viewstart                          Web/ASP.NET

 

然后使用 dotnet new console {appname}指令创建一个控制台应用程序

dotnet new console -o Hello
The template "Console Application" was created successfully.

Processing post-creation actions...
Running 'dotnet restore' on Hello\Hello.csproj...
  Restoring packages for C:\projects\Git\Code\NetCore\Console\Hello\Hello.csproj...
  Generating MSBuild file C:\projects\Git\Code\NetCore\Console\Hello\obj\Hello.csproj.nuget.g.props.
  Generating MSBuild file C:\projects\Git\Code\NetCore\Console\Hello\obj\Hello.csproj.nuget.g.targets.
  Restore completed in 198.52 ms for C:\projects\Git\Code\NetCore\Console\Hello\Hello.csproj.


Restore succeeded.

 

这里用的工程名为Hello, 生成的目录结构如下

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         8/6/2018   7:50 AM                obj
-a----         8/6/2018   7:50 AM            178 Hello.csproj
-a----         8/6/2018   7:50 AM            187 Program.cs

Hello.csproj

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>

<OutputType>Exe</OutputType>

<TargetFramework>netcoreapp2.0</TargetFramework>

</PropertyGroup>

</Project>

Program.cs

using System;

namespace Hello
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

编译调试

按下F5 在Evironment选择器中选择 .netCore

然后当前的根目录会创建launch.json, task.json  这里使用默认配置就可以

如果有多个项目,可以在下面的属性中设置启动项目

tasks.json -> tasks->args

     "args": [
                "build",
                "${workspaceFolder}/Hello/Hello.csproj"
            ],

launch.json -> configurations ->program,cwd

 {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/Hello/bin/Debug/netcoreapp2.0/Hello.dll",
            "args": [],
            "cwd": "${workspaceFolder}/Hello",
            "console": "internalConsole",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        }

重新按下F5启动默认配置执行Debug

Executing task: C:\Program Files\dotnet\dotnet.exe build C:\projects\Git\Code\NetCore\Console/CSharpSixTest/CSharpSixTest.csproj <

Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Prime -> C:\projects\Git\Code\NetCore\Console\Prime\bin\Debug\netstandard2.0\Prime.dll
  CSharpSixTest -> C:\projects\Git\Code\NetCore\Console\CSharpSixTest\bin\Debug\netcoreapp2.0\CSharpSixTest.dll

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

Time Elapsed 00:00:01.47

Terminal will be reused by tasks, press any key to close it.

请注意上面的输出第一句命令, dotnet build {.csproj}

如果你的VSCode中没有安装c#扩展,使用上面的的命令编译

或者使用命令直接执行  dotnet run {.csproj}

 

添加类库项目

使用下面的命令床一个类库项目

cd {project root}

new-item MyPrinter -itemtype directory  (创建目录)

cd MyPrinter

dotnet new classlib (创建类库项目)

 

创建完成后的目录结构

Directory: C:\projects\Git\Code\NetCore\Console\MyPrinter

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         8/6/2018   8:23 AM                obj
-a----         8/6/2018   8:23 AM             86 Class1.cs
-a----         8/6/2018   8:23 AM            145 MyPrinter.csproj

 

在VSCode中可以重命名文件,这里将Class1.cs重命名为Printer.cs

using System;

namespace MyPrinter
{
    public class Printer
    {
        public void Print(string printContent){
            Console.WriteLine("Printer print content : " + printContent);
        }
    }
}

那么如何在Hello项目中引用这个classlib

使用下面的命令 

cd {Startup Project Location}

dotnet add reference {target project path}

PS C:\projects\Git\Code\NetCore\Console\Hello> dotnet add reference ..\MyPrinter\MyPrinter.csproj
Reference `..\MyPrinter\MyPrinter.csproj` added to the project.

Program.cs 

using System;
using MyPrinter;
namespace Hello
{
    class Program
    {
        static void Main(string[] args)
        {
            Printer p =new Printer();
            Console.WriteLine("Hello World!");
            p.Print("First .net core app");
        }
    }
}

执行

Hello World!
Printer print content : First .net core app

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页