zoukankan      html  css  js  c++  java
  • dotnet core 项目

    项目

    常用命令

    我们使用dotnet core 命令行来创建项目及进行编译,发布等,比较常用的dotnet core 命令 如下:

    1. dotnet new [arguments] [options] 创建一个新项目
    2. dotnet restore 还原项目的依赖包
    3. dotnet build 编译项目
    4. dotnet publish 打包项目
    5. dotnet run 编译以及执行项目

    其他命令可以在控制台输入 dotnet [arguments] --help 进行查看

    创建项目

    接下来创建一个控制台程序,进行相应的说明,我们将创建的目录放置在D:workspace 下,在该目录下打开控制台,
    创建一个名称为demo的控制台项目

        D:workspace>dotnet new console -n demo
    
        Content generation time: 145.5073 ms
        The template "Console Application" created successfully.
    

    当创建成功后,进入demo目录中,还原依赖包

        D:workspace>cd ./demo
    
        D:workspacedemo>dotnet restore
    
        Restoring packages for D:workspacedemodemo.csproj...
        Generating MSBuild file D:workspacedemoobjdemo.csproj.nuget.g.props.
        Generating MSBuild file D:workspacedemoobjdemo.csproj.nuget.g.targets.
        Writing lock file to disk. Path: D:workspacedemoobjproject.assets.json
        Restore completed in 2.81 sec for D:workspacedemodemo.csproj.
    
        NuGet Config files used:
            C:Userschuckchwang.TENCENTAppDataRoamingNuGetNuGet.Config
    
        Feeds used:
            https://api.nuget.org/v3/index.json
    

    还原依赖包ok后,直接使用dotnet run命令来运行该控制台

        D:workspacedemo>dotnet run
        Hello World!
    

    可以看到输入 Hello World!

    包引入

    绝大多数情况下,应用程序中需要引入第三方发布的包来进行开发,dotnet core使用NuGet来进行包依赖管理,接下来演示一下如何引入entityframeworkcore包。dotnet core使用csproj文件作为配置管理文件,我们先看一下未安装其他依赖包时的文件。
    可以看到里面只有一些基本的信息,平台,sdk,输出类型等。

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>
    
    </Project>
    

    接下来我们引入entityframeworkcore包,我们采用vscode的nuget扩展来安装对应依赖。
    首先,使用vscode打开demo项目,输入命令 ctrl+shift+p 打开命令行窗口,
    然后,输入nuget 找到 NuGet Package Manager:Add Package 确认,
    最后,在查询窗口中输入entityframework,找到entityframeworkcore包进行安装。
    安装完成后,我们再看一下配置管理文件中的变化

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.0-preview1-final"/>
      </ItemGroup>
    </Project>
    

    我们可以看到文件中多了一个ItemGroup节,其中PackageReference引入了Microsoft.EntityFrameworkCore包。
    最后我们使用dotnet restore 命令还原包依赖。
    通过以上的步骤我们可以了解到,安装包依赖实际上只需要在csproj文件的ItemGroup节点下写入一个PackageReference依赖即可。

    项目引入

    多数情况下我们的项目会进行分层处理,比如常见的三层结构,数据层,业务层以及展示层,这时候我们就需要用到将这些层次单独作为项目进行引入。接下来会演示我们会创建一个Business业务层项目,并将其映入demo项目中。
    首先我们创建一个business 库项目,使用如下命令并还原对应项目

        dotnet new lib -n business
        dotnet restore
    

    business项目中创建一个test类,代码如下

        public class test
        {
            public void say()
            {
                Console.WriteLine("I am a business layer");
            }
        }
    

    通过包引入,我们了解到,引入第三方项目或者包在csproj文件中ItemGroup进行维护即可,我们使用ProjectReference 配置引入项目,修改后的ItemGroup节如下,然后使用dotnet restore命令进行还原

      <ItemGroup>
        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.0-preview1-final"/>
        <ProjectReference Include="..usinessusiness.csproj"/>
      </ItemGroup>
    

    接下来我们修改Program.cs中内容,引入business类库

        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
    
            new business.test().say();
        }
    

    然后使用命令 dotnet run , 可以看到 test正确执行了。

    D:workspacedemo>dotnet run
    Hello World!
    I am a business layer
    
  • 相关阅读:
    最短路径算法 2.Dijkstra算法
    最短路径算法 1.Floyed-Warshall算法
    POLYGON(动态规划)
    JAG Asia 2016-Similarity of Subtrees(BFS+哈希)
    2019ACM-ICPC南京网络赛Holy Grail (SPFA / Floyd 模板题)
    2019ACM-ICPC南京网络赛Greedy Sequence
    快速输入输出
    2019HDU多校训练第七场J-Just Repeat
    JAG Asia 2017 C-----Prime-Factor Prime(素数区间筛)
    2019HDU多校训练第五场1007-permutation 2
  • 原文地址:https://www.cnblogs.com/SLchuck/p/6979236.html
Copyright © 2011-2022 走看看