dotnet core 项目
项目
常用命令
我们使用dotnet core 命令行来创建项目及进行编译,发布等,比较常用的dotnet core 命令 如下:
- dotnet new [arguments] [options] 创建一个新项目
 - dotnet restore 还原项目的依赖包
 - dotnet build 编译项目
 - dotnet publish 打包项目
 - 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:\workspace\demo>dotnet restore
    Restoring packages for D:\workspace\demo\demo.csproj...
    Generating MSBuild file D:\workspace\demo\obj\demo.csproj.nuget.g.props.
    Generating MSBuild file D:\workspace\demo\obj\demo.csproj.nuget.g.targets.
    Writing lock file to disk. Path: D:\workspace\demo\obj\project.assets.json
    Restore completed in 2.81 sec for D:\workspace\demo\demo.csproj.
    NuGet Config files used:
        C:\Users\chuckchwang.TENCENT\AppData\Roaming\NuGet\NuGet.Config
    Feeds used:
        https://api.nuget.org/v3/index.json
还原依赖包ok后,直接使用dotnet run命令来运行该控制台
    D:\workspace\demo>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="..\business\business.csproj"/>
  </ItemGroup>
接下来我们修改Program.cs中内容,引入business类库
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
        new business.test().say();
    }
然后使用命令 dotnet run , 可以看到 test正确执行了。
D:\workspace\demo>dotnet run
Hello World!
I am a business layer
												
											dotnet core 项目的更多相关文章
- 解决VS2015无法调试dotnet core项目
		
dotnet core 1.0正式版和VS2015 update3安装后一直无法在VS中正常调试. 错误提示:The debugger's worker process (msvsmon.exe) u ...
 - Docker 简单发布dotnet core项目 图文版
		
原文:https://www.cnblogs.com/chuankang/p/9474591.html docker发布dotnet core简单流程 需要结合这个版本看哈 地址:https://ww ...
 - Docker 简单发布dotnet core项目 文本版
		
原文:https://www.cnblogs.com/chuankang/p/9474591.html docker发布dotnet core简单流程 照着步骤来基本没错 但是有几个要注意的地方: v ...
 - dotnet core 项目脚手架这种小事嘛...
		
dotnet core脚手架批处理.bat @echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本 pause goto end ::goto end s ...
 - dotnet core项目升级到 .net core 2.0
		
这几天无疑我们已经让.net core 2.0正式版发布的消息刷屏,这次发布整整提前了一个月的时间,关于具体的发布信息,可以去看善友大神的博客,.NET Core 2.0 正式发布信息汇总,废话不多说 ...
 - VS2017 IDE中发布自包含(SCD)DotNET Core项目
		
根据Stack Overflow上的一个回答得知,这项功能目前VS2017并不具备,但你可以通过如下方法发布自包含项目: 1.项目文件(.csproj)中添加RuntimeIdentifier配置项, ...
 - 在Linux上部署DotNet Core项目的时候发现Apache无法转发Kestrel的5000端口的问题
		
CentOS服务器上使用Apache托管Dotnet Core2,服务启动了,端口也打开了.在本地使用curl命令可以访问5000端口的网页内容,但是访问Apache的端口却无法获取到网页的内容.想起 ...
 - dotnet core 使用 MongoDB 进行高性能Nosql数据库操作
		
好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好 ...
 - DotNet Core 之旅(一)
		
1.下载安装 DotNetCore.1.0.0-SDK.Preview2-x64.exe 下载链接:https://www.microsoft.com/net/download ps:如果有vs201 ...
 
随机推荐
- Laravel 开源电商体验与部署
			
体验 开源项目已经部署了体验环境,开源通过扫描下方小程序码进行体验: 我们部署了 Laravel API demo 环境,访问地址:https://demo-open-admin.ibrand.cc/ ...
 - C# 调用 c++ 非托管dll时wchar类型参数的乱码处理
			
[DllImport("user32.dll", CallingConvention = CallingConvention.WinApi)] public static exte ...
 - 获取v$latch数据源实验
			
实验环境:Oracle Rac 11.2.0.3 首先获取v$latch的定义:通过PL/SQL或者get ddl等常规途径只能获取到v_$latch相关的视图信息.需要通过特殊方法获取v$latch ...
 - 改写python round()函数,解决四舍五入问题 round(1.365,2)=1.36
			
round()函数四舍五入存在一个问题,遇到5不一定进一.如下图所示: print(round(1.365,2)) #1.36 没进一 print('%.2f'%1.365) print(round( ...
 - (String)、toString()与String.valueOf()的区别
			
(String).Object.toString()正常情况下跟String.valueOf()没有区别. 但当Object是null的时候.toString会抛出异常.valueOf返回" ...
 - 一、OSI模型
			
OSI/RM协议是由ISO(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必须的.通用的概念以便开发完善.可以用来解释连接不同系统的框架.OSI将计算机网络体系结构(architectu ...
 - 使用metasploit自带模块进行端口扫描
			
搜索模块: 选择查看: 设置&扫描:
 - darknet53 yolo 下的识别训练
			
[目录] 一. 安装Darknet(仅CPU下) 2 1.1在CPU下安装Darknet方式 2 1.2在GPU下安装Darknet方式 4 二. YOLO.V3训练官网数据集(VOC数据集/COCO ...
 - Mysql跨数据库(在同一IP地址中)复制表
			
数据库表间数据复制分类 在利用数据库开发时,常常会将一些表之间的数据互相导入.当然可以编写程序实现,但是,程序常常需要开发环境,不方便.最方便是利用sql语言直接导入.既方便而修改也简单.以下就是导入 ...
 - wordpress二次开发第一个jquery对比
			
$(document).ready(function(){ $("input").focus(function(){ $("input").css(" ...