.Net core 发布文件夹的深入了解

时间:2024-05-22 22:32:50

  在日常工作中。经常维护项目会出现一些有的没的问题。有的是dll 的问题有的是环境配置的问题。这时候对症下药。知道发布的文件里的每个文件的作用,该怎么解决就比较重要。这篇文章会持续维护。碰到问题就写进来。当作总结备忘。
  本文参考文章:https://www.cnblogs.com/lwqlun/p/9704702.html


 c# 的编译器:
  c#的编译器会将 cs 文件转换成dll 文件(程序集文件),借助.net core可以运行在 windows/MacOs/Linux 环境下
 .Net core 发布文件夹的深入了解

在windows中,.net core的编译器文件csc.dll 存放在 C:\Program Files\dotnet\sdk\[.NET Core 版本号]\Roslyn\bincore 下用于编译cs文件。

1)  什么是 DeBug 什么是 Release
  发布文件存放在bin 文件夹下:
  bin目录用来存放编译的结果,bin是二进制binrary的英文缩写,会有debug和release文件夹存放对应版本的发布文件
  obj目录用于存放编译过程中生成的中间临时文件, obj是object的缩写。其中有debug和release两个子目录
 (c# 的编译是分模块进行的,采取的是增量编译的形式,每次只会编译修改过的dll以提升效率。修改参考文档:https://blog.****.net/jhtao1860/article/details/51497175

  发布时。会分为2个模式。首先我我们要知道2种发布模式的区别才可以更好的了解发布后的内容。
  DeBug: 调试版本
 1) 文件体量大,并且不会对程序进行优化。
 2)生成 xx.exe,xx.dll,以及debug独有的 xx.pdb的调试文件。存放的对应dll的调试内容记录(断点调试内容等)

  Release: 正式版本
  1)文件体量比较小。程序会被优化,加快运行速度
  2)不会生成 pdb的调试文件

   2)xxx..runtimeconfig.json  
   这个文件是用于配置运行时的文件。存放的运行的版本和环境。如果缺少了这个文件。运行会报错缺少指定组件。
.Net core 发布文件夹的深入了解   这个文件中包含的内容如下:

  .Net core 发布文件夹的深入了解

 当dotnet运行时会读取这个文件里的版本号。然后去 C:\Program Files\dotnet\shared\[库名]\[版本号] 路径下搜索对应的dll 
如果缺少可以自行添加一个 [dll名称].runtimeconfig.json的文件。

  3)xx.runtimeconfig.json
  deps.json 记录的是应用程序集的依赖清单文件以及对应的版本号。它可以用来配置动态链接的程序集

缺少了某一个程序的引用会报错以下类似信息: (缺少xxx程序的引用)
 .Net core 发布文件夹的深入了解
文件包含内容如下:

.Net core 发布文件夹的深入了解

  例如项目中缺少某个引用可以手动进行添加:

.Net core 发布文件夹的深入了解