.Net core 发布文件的了解总结

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


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

在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.csdn.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 发布文件的了解总结_第2张图片

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

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

缺少了某一个程序的引用会报错以下类似信息: (缺少xxx程序的引用)
 
文件包含内容如下:

.Net core 发布文件的了解总结_第3张图片

  例如项目中缺少某个引用我们就可以在指定的项目引用内添加某项目的包引用(nuget包也要放到对应的根目录下):

.Net core 发布文件的了解总结_第4张图片

 4)web.config
 Web.config是XML格式的文件,一个Web.config文件控制着特定应用程序的设置。 
 在Core之前还负责存放一些。例如连接字符串等配置信息等。不过core现在已经把这块功能都转移到appsettings.json/别的json中来读取调用。

 

 

你可能感兴趣的:(.Net,Core,学习总结)