.net core这个名字对.net程序员来说都不陌生了,但貌似圈子里真正有开发经验的并不多,关键是公司的项目没需求。

今天我就趁着不忙上手玩了玩,搞明白了一些东西,心中也有了十万个为什么。那么现在与大家分享一下我这次玩耍的经历。

在系统中创建一个将要存放工程的目录(我的是F:\Researches\20180409 dotnetcore\test00)

打开一个cmd程序,定位到这个目录,使用dotnet new console命令(用命令行程序模板创建一个工程)

提示成功,在我们的目录中看到,项目已经创建好了

恩。。。还成,console.writeline(“ hello world”);已经帮我写好了,觉得有点空虚。。

使用visual studio code调试程序。

看了一下生成文件,为啥是个dll而不是exe,问了一下群里的码友,

路人A:“那就对了  这玩意儿是跨平台的  Linux之类的不认exe把”

我:“soga 那如果我想要exe呢”

路人B:“修改工程文件,加一行 <RuntimeIdentifier>win10-x64-corert</RuntimeIdentifier>”

exe就这么出现了

接下来,做一个实用点的控制台程序,我之前写过一个C#爬虫程序(此程序的初始版本有在blog里边记录,现在已经加了对多个羞羞网站的支持了)

为了方便,项目生成完成后直接使用vs2017进行编辑

将之前的文件全部导入,大部分代码都可以直接使用。

但遇到两个问题,

一是用于解析RSS源的SyndicationFeed类找不到了

二是Encoding.GetEncoding("gb2312")运行时无法找到相应的类

网上搜索了一下,这两个问题都是少包导致的,.net core的理念是按需加载包

解决方法。还是cmd程序定位到项目目录,两条命令为项目添加两个包引用

dotnet add package System.ServiceModel.Syndication --version 4.5.0-preview1-26216-02

dotnet add package System.Text.Encoding.CodePages --version 4.4.0

并在main方法中注册当前系统的编码

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

调试运行:

感觉自己棒棒哒!!

试验完后,仍然有一大堆问题在心中

比如:

.net core的模板中并没有提供带gui框架的模板,那么.net core程序的界面都是怎么处理的?大多用来写控制台程序和网站后台?

wpf程序可以直接引用.net core项目生成的类库么?

我上边的项目在linux系统上如何跑?

.net core初试 --- 控制台程序的更多相关文章

  1. .NET CORE编写控制台程序应有的优雅姿势(转载)

    原文地址:https://www.cnblogs.com/zuowj/p/11107243.html 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因 ...

  2. 10分钟 在linux里创建.net core helloworld控制台程序

    官方教程 安装linux https://www.cnblogs.com/LittleFeiHu/p/9749455.html 第一步 :选择和你本机适用的Linux版本,我这里用的是18.04. 第 ...

  3. .NET CORE与Spring Boot编写控制台程序应有的优雅姿势

    本文分别说明.NET CORE与Spring Boot 编写控制台程序应有的“正确”方法,以便.NET程序员.JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写 ...

  4. 在.NET Core控制台程序中使用依赖注入

    之前都是在ASP.NET Core中使用依赖注入(Dependency Injection),昨天遇到一个场景需要在.NET Core控制台程序中使用依赖注入,由于对.NET Core中的依赖注入机制 ...

  5. .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.

    .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible wi ...

  6. Mac/Windows开发跨平台.NET Core 控制台程序

    自从微软开始在Github上开源搞.NET Core后,.NET的跨平台逐渐就成真了.多年使用各种语言,说实话还是csharp用起来最舒服.不过现在的工作环境里使用它的机会比较少,大部分时候只是用来写 ...

  7. Supervisor守护DotNet Core控制台程序

    Supervisor 相信对Linux系统很熟的都知道这个软件,基于Python写的一个守护进程软件.具体的介绍和使用我就不再赘述了. 使用asp.net core 部署在Linux常用的方法 我们可 ...

  8. 如何在.NET Core控制台程序中使用依赖注入

    背景介绍 依赖注入(Dependency Injection), 是面向对象编程中的一种设计原则,可以用来减低代码之间的耦合度.在.NET Core MVC中 我们可以在Startup.cs文件的Co ...

  9. Asp.Net Core中使用MongoDB的入门教程,控制台程序使用 MongoDB

    内容来源  https://blog.csdn.net/only_yu_yy/article/details/78882446 首先,创建一个.Net Core的控制台应用程序.然后使用NuGet导入 ...

随机推荐

  1. 在Objc项目中调用Swift

    之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧.记录步骤如下: 1.创建OC项目 (1)启动 ...

  2. apache配置防盗链

    1.确保apache已开启rewrite.   2.在.htaccess文件中添加如下: RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://X ...

  3. pip安装python模块方法

    网上搜索了很多,主流的配置方法分为两种: 摘自 1.http://www.jb51.net/article/83617.htm 安装pip的包并确定pip安装时的镜像源地址,国内常用的地址有: htt ...

  4. jquery统计显示或隐藏的元素个数

    统计显示的checkbox的数量: 统计隐藏的checkbox数量:

  5. 2018.07.07 BZOJ2212: Poi2011Tree Rotations(线段树合并)

    2212: [Poi2011]Tree Rotations Time Limit: 20 Sec Memory Limit: 259 MB Description Byteasar the garde ...

  6. 2018.07.06 POJ1273 Drainage Ditches(最大流)

    Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Description Every time it rains on Farmer J ...

  7. hdu-2191(完全背包+二进制优化模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 思路:完全背包模板 #include<iostream> #include<c ...

  8. linux中nfs启动报rpcbind.socket failed to listen on sockets: Address family not supported by protocol

    1.systemctl start rpcbind.service 报错: [root@autodeploy ~]# journalctl -xe -- Support: http://lists.f ...

  9. 【转】MapReduce:详解Shuffle过程

    ——转自:{http://langyu.iteye.com/blog/992916} Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle ...

  10. UVa 10340 All in All (水题,匹配)

    题意:给定两个字符串,问第一个串能不能从第二个串通过删除0个或多个字符得到. 析:那就一个字符一个字符的匹配,如果匹配上了就往后走,判断最后是不是等于长度即可. 代码如下: #include < ...