我需要从c#构建中分发哪些文件?



当我在Windows上使用。net 6.0构建一个名为MyApplication的c#应用程序项目时,我得到以下文件:

MyApplication.dll
MyApplication.exe
MyApplication.deps.json
MyApplication.dll.config
MyApplication.pdb
MyApplication.runtimeconfig.json
MyApplication.xml

我需要分发哪些文件?

MyApplication.dll包含应用程序的IL代码。我当然需要这个。

MyApplication.exe是启动应用程序的存根加载程序。我确实需要这个。

MyApplication.pdb包含调试信息。我不需要分发这个

但是其他人呢?它们似乎包含一些依赖信息。但是,这是编译器才需要的,还是以后在运行时才需要?(我的应用程序由几十个dll组成)。

从运行时配置文件的规范

  • MyApp.dll - MyApp的托管程序集,包括符合ecma的入口点令牌。
  • MyApp.exe - corehost.exe可执行文件的副本。MyApp.runtimeconfig.json -包含运行时配置设置的可选配置文件。MyApp.deps.json -依赖项列表,以及编译上下文数据和编译依赖项。技术上不是必需的,但需要使用服务或包缓存/共享包安装功能。

因此,虽然json文件不是严格要求的,但我可能会建议包括它们。

MyApplication.xml是一个可选的文档文件,它包含dll的注释。如果您分发的是应用程序而不是库,则可能不需要这样做,并且在项目属性中应该有一个选项来打开该文件的生成。

您还应该查看部署应用程序的文档。我将特别考虑关于自包含和单个文件发布的部分。