.net core初试 --- 控制台程序

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

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

 

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

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

image

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

image

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

使用visual studio code调试程序。

image

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

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

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

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

exe就这么出现了LCLFP8HNRUT0200)[E(TP]2

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

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

image

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

但遇到两个问题,

一是用于解析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

image

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

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

调试运行:

image

感觉自己棒棒哒!!

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

比如:

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

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

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

原文地址:https://www.cnblogs.com/GuoRL/p/8761056.html