一样的csproj,不一样的接口
1.文件包含于排除:
2. *.config
文件包含于排除
新建 .netcore 与 .netframework 项目
打开framework 项目文件位置
打开 frameworkConsoleApp1.csproj文件
查看 .netcore的CoreconsoleApp2.csproj文件
该文件十分简洁
改变版本
此时重新打开文件
在framework中新建一个类文件
此时新建文件出现在了csproj中
此时我们新建class2文件,
项目文件中有
然后在排除
此时class2 从项目文件中消失了
【总结】:framework项目中,所有文件必须显示的添加到项目文件中。没有添加到该文件的内容,是不属于该项目的。
但是在 .net core中,所有的文件都默认属于项目文件,除非你移除了
【新方式】
在framework中,是无法双击打开csproj文件的,只能通过打开项目文件位置,找到该文件打开修改,
在 .netcore中就能直接双击项目文件,在vs打开csproj文件
程序的发布
1、部署模式:依赖框架:独立(推荐);
2、目标运行时。
3、生成单个文件。
4、ReadyToRun : AOT (ahead-of-time)、JIT。缺点看文档。
5、裁剪未使用的程序集。缺点看文档。
控制台发布:
此时只是建立了一个发布文件,并未发布完成
点击编辑
【部署模式】 :
依赖框架:需要目标操作系统安装 .netcore运行时环境。
独立:直接生成的包里面,就包含了 .netcore的运行时环境。【推荐】:多个项目互不影响
【目标运行时】:
可移植的:不同的版本都可以支持
选择具体的版本:就只有选择的那个版本可以支持
选择好之后,点击保存
发布:
方式一:选择可移植方式。完成后,打开项目位置
可移植方式,需要运行时环境
微软发布的类似虚拟机的东西
此时报错 需要运行时环境
方式二:选择独立
此时,文件明显更多了
此时,完美运行
发布到linux下运行测试
运行成功:
【文件发布选项】
一、选择生成单个文件
速度相对更加缓慢
启用ReadyToRun:AOT(ahead-of-time)、JIT
编译的时候就完成JIT的优化,启动运行速度更快,但是编译速度减慢
剪裁未使用的程序集(预览)
尝试把一些用不到的程序集,不打包到包里面。