.net core初试 --- 控制台程序
.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初试 --- 控制台程序的更多相关文章
- .NET CORE编写控制台程序应有的优雅姿势(转载)
原文地址:https://www.cnblogs.com/zuowj/p/11107243.html 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因 ...
- 10分钟 在linux里创建.net core helloworld控制台程序
官方教程 安装linux https://www.cnblogs.com/LittleFeiHu/p/9749455.html 第一步 :选择和你本机适用的Linux版本,我这里用的是18.04. 第 ...
- .NET CORE与Spring Boot编写控制台程序应有的优雅姿势
本文分别说明.NET CORE与Spring Boot 编写控制台程序应有的“正确”方法,以便.NET程序员.JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写 ...
- 在.NET Core控制台程序中使用依赖注入
之前都是在ASP.NET Core中使用依赖注入(Dependency Injection),昨天遇到一个场景需要在.NET Core控制台程序中使用依赖注入,由于对.NET Core中的依赖注入机制 ...
- .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 ...
- Mac/Windows开发跨平台.NET Core 控制台程序
自从微软开始在Github上开源搞.NET Core后,.NET的跨平台逐渐就成真了.多年使用各种语言,说实话还是csharp用起来最舒服.不过现在的工作环境里使用它的机会比较少,大部分时候只是用来写 ...
- Supervisor守护DotNet Core控制台程序
Supervisor 相信对Linux系统很熟的都知道这个软件,基于Python写的一个守护进程软件.具体的介绍和使用我就不再赘述了. 使用asp.net core 部署在Linux常用的方法 我们可 ...
- 如何在.NET Core控制台程序中使用依赖注入
背景介绍 依赖注入(Dependency Injection), 是面向对象编程中的一种设计原则,可以用来减低代码之间的耦合度.在.NET Core MVC中 我们可以在Startup.cs文件的Co ...
- Asp.Net Core中使用MongoDB的入门教程,控制台程序使用 MongoDB
内容来源 https://blog.csdn.net/only_yu_yy/article/details/78882446 首先,创建一个.Net Core的控制台应用程序.然后使用NuGet导入 ...
随机推荐
- 在Objc项目中调用Swift
之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧.记录步骤如下: 1.创建OC项目 (1)启动 ...
- apache配置防盗链
1.确保apache已开启rewrite. 2.在.htaccess文件中添加如下: RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://X ...
- pip安装python模块方法
网上搜索了很多,主流的配置方法分为两种: 摘自 1.http://www.jb51.net/article/83617.htm 安装pip的包并确定pip安装时的镜像源地址,国内常用的地址有: htt ...
- jquery统计显示或隐藏的元素个数
统计显示的checkbox的数量: 统计隐藏的checkbox数量:
- 2018.07.07 BZOJ2212: Poi2011Tree Rotations(线段树合并)
2212: [Poi2011]Tree Rotations Time Limit: 20 Sec Memory Limit: 259 MB Description Byteasar the garde ...
- 2018.07.06 POJ1273 Drainage Ditches(最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Description Every time it rains on Farmer J ...
- hdu-2191(完全背包+二进制优化模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 思路:完全背包模板 #include<iostream> #include<c ...
- 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 ...
- 【转】MapReduce:详解Shuffle过程
——转自:{http://langyu.iteye.com/blog/992916} Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle ...
- UVa 10340 All in All (水题,匹配)
题意:给定两个字符串,问第一个串能不能从第二个串通过删除0个或多个字符得到. 析:那就一个字符一个字符的匹配,如果匹配上了就往后走,判断最后是不是等于长度即可. 代码如下: #include < ...