少有人走的路

勇哥的工业自动化技术网站

.net core学习(二)命令行CLI和项目发布


(一)开发.NET的工具

.NET的开发工具有下面几种:

1) .NET CLI

2) Visual Studio  (仅windows下用)

3) Visual Studio for Mac

    这个从收购的Xmarain公司弄出来的一个产品,使用习惯上跟真正的vs有一些区别

4) Jetbrains Rider 收费

5) VS Code(Visual Studio Code)  这个是微软整的,开源的跨平台的

    一般前端开发人员用得多些。


.NET运行时

如果目标电脑需要安装的话,到下面官网下载:

https://dotnet.microsoft.com/zh-cn/download


image.png



(二)CLI的基本使用方法


CLI是命令行方式创建、编译、运行.NET程序。

详细见官方文档。

https://learn.microsoft.com/zh-cn/dotnet/core/tools/



2.1  创建控制台程序

image.png

这个是cli创建的项目

image.png


执行方法如下:

可以看到你run项目文件或者是program.cs都是可以的。

image.png


2.2  创建winform程序

image.png

创建内容如下:

image.png

image.png

运行结果:

image.png



(三)项目发布


创建.NET控制台程序。

注意“不使用顶级语句”,如果你勾选后,看到的就是.NET 5及以前版本(包括.net framework)看到的Programe.cs内容。

image.png

有关顶级语句是个啥见下面贴子:

https://www.skcircle.com/?id=2341



项目上右键选择“发布”

image.png


我们选择发布到一个本地文件夹

image.png


image.png


显示所有设置

image.png


这里最关键的是部署模式:

“依赖框架” 导出的程序尺寸很小,但是要求目标电脑上要装这个程序要求的.NET运行时版本,才可以运行程序。

“独立” 则会把.NET运行时和程序一起打包发布,程序磁盘空间占用就会大许多。但是好处是目标电脑可以什么都不装也可以运行。

image.png

选择目标运行时。

其中osx-x64是苹果系统。

image.png

这里勇哥选择linux-x64来实验一下。

“生成单个文件” 会把全部文件打包成一个执行文件。这样方便对方接收与运行。

“裁剪未使用的代码” 这个功能不能保证裁剪后的程序一定能运行成功,因为如果程序使用反射来调用程序集,vs就很难判定这个程序集是否被用到了。

              但是这个功能的好处是能减小你生成的程序的大小。如果一定要用这个功能,一定要严格测试你程序的全部功能是否正常。

image.png

最后点“发布”

image.png

发布成功!

勇哥电脑花了17秒,你的电脑花了多长时间呢?

image.png

在发布目录,我们看到果然只有一个运行程序。

这个程序就是个hello world,但是有65M之大。

pdb那个是调试文件,可以删除。

image.png


下面勇哥用linux跑一下这个程序。


启动WSL的Ubuntu控制台。

image.png

我们不需要把生成的执行程序拷贝到linux环境中去。

而是直接找到vs的发布目录,直接执行。


操作如下图所示。

关键就是那句: cd /mnt/d/   就可以访问到发布程序所在的磁盘了。

linux下执行当前目录的一个程序要写成   ./程序名字

而且请注意linux下执行程序并不是以.exe结尾(根本没有文件扩展名的概念),这个是windows下的定义。

image.png




--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!




发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864