杨中科 .NET项目结构及程序发布

一样的csproj,不一样的接口

1.文件包含于排除:
2. *.config

文件包含于排除

新建 .netcore 与 .netframework 项目
杨中科 .NET项目结构及程序发布_第1张图片
打开framework 项目文件位置
杨中科 .NET项目结构及程序发布_第2张图片

杨中科 .NET项目结构及程序发布_第3张图片
打开 frameworkConsoleApp1.csproj文件
杨中科 .NET项目结构及程序发布_第4张图片
杨中科 .NET项目结构及程序发布_第5张图片
杨中科 .NET项目结构及程序发布_第6张图片
查看 .netcore的CoreconsoleApp2.csproj文件
该文件十分简洁
杨中科 .NET项目结构及程序发布_第7张图片
改变版本
杨中科 .NET项目结构及程序发布_第8张图片
杨中科 .NET项目结构及程序发布_第9张图片
此时重新打开文件
杨中科 .NET项目结构及程序发布_第10张图片
在framework中新建一个类文件
杨中科 .NET项目结构及程序发布_第11张图片
杨中科 .NET项目结构及程序发布_第12张图片
此时新建文件出现在了csproj中
杨中科 .NET项目结构及程序发布_第13张图片
此时我们新建class2文件,
项目文件中有
杨中科 .NET项目结构及程序发布_第14张图片

然后在排除
杨中科 .NET项目结构及程序发布_第15张图片
此时class2 从项目文件中消失了
杨中科 .NET项目结构及程序发布_第16张图片
【总结】:framework项目中,所有文件必须显示的添加到项目文件中。没有添加到该文件的内容,是不属于该项目的。

但是在 .net core中,所有的文件都默认属于项目文件,除非你移除了
杨中科 .NET项目结构及程序发布_第17张图片
【新方式】
在framework中,是无法双击打开csproj文件的,只能通过打开项目文件位置,找到该文件打开修改,
在 .netcore中就能直接双击项目文件,在vs打开csproj文件
杨中科 .NET项目结构及程序发布_第18张图片

程序的发布

1、部署模式:依赖框架:独立(推荐);
2、目标运行时。
3、生成单个文件。
4、ReadyToRun : AOT (ahead-of-time)、JIT。缺点看文档。
5、裁剪未使用的程序集。缺点看文档。

控制台发布:
杨中科 .NET项目结构及程序发布_第19张图片
杨中科 .NET项目结构及程序发布_第20张图片
杨中科 .NET项目结构及程序发布_第21张图片

杨中科 .NET项目结构及程序发布_第22张图片
此时只是建立了一个发布文件,并未发布完成
点击编辑
杨中科 .NET项目结构及程序发布_第23张图片

杨中科 .NET项目结构及程序发布_第24张图片

【部署模式】 :
依赖框架:需要目标操作系统安装 .netcore运行时环境。
独立:直接生成的包里面,就包含了 .netcore的运行时环境。【推荐】:多个项目互不影响
【目标运行时】:
可移植的:不同的版本都可以支持
选择具体的版本:就只有选择的那个版本可以支持

选择好之后,点击保存
发布:
杨中科 .NET项目结构及程序发布_第25张图片
方式一:选择可移植方式。完成后,打开项目位置
杨中科 .NET项目结构及程序发布_第26张图片
可移植方式,需要运行时环境
杨中科 .NET项目结构及程序发布_第27张图片
微软发布的类似虚拟机的东西
此时报错 需要运行时环境
杨中科 .NET项目结构及程序发布_第28张图片

方式二:选择独立
杨中科 .NET项目结构及程序发布_第29张图片
此时,文件明显更多了
杨中科 .NET项目结构及程序发布_第30张图片
此时,完美运行
杨中科 .NET项目结构及程序发布_第31张图片
杨中科 .NET项目结构及程序发布_第32张图片
发布到linux下运行测试
杨中科 .NET项目结构及程序发布_第33张图片
杨中科 .NET项目结构及程序发布_第34张图片
运行成功:
杨中科 .NET项目结构及程序发布_第35张图片
【文件发布选项】
杨中科 .NET项目结构及程序发布_第36张图片
一、选择生成单个文件
速度相对更加缓慢
杨中科 .NET项目结构及程序发布_第37张图片

启用ReadyToRun:AOT(ahead-of-time)、JIT
编译的时候就完成JIT的优化,启动运行速度更快,但是编译速度减慢
杨中科 .NET项目结构及程序发布_第38张图片

剪裁未使用的程序集(预览)
尝试把一些用不到的程序集,不打包到包里面。

杨中科 .NET项目结构及程序发布_第39张图片

你可能感兴趣的:(ASP.NET,.net)