为什么dotnet core cli会在“ exe”文件之外生成“ dll”文件?

问题描述 投票:0回答:1

例如,我正在尝试“ dotnet”命令行工具,我可以运行:

dotnet new console

这将创建一个新项目,然后

dotnet build

它将生成bin / Debug / netcoreapp3.1 / XXX.exe和bin / Debug / netcoreapp3.1 / XXX.dll

我只是想知道为什么它将生成一个dll文件?在其他情况下可以使用吗?

非常感谢。

.net dll build console core
1个回答
0
投票

使用命令时

dotnet new console

生成的项目文件看起来像

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>

<OutputType>Exe</OutputType>

指定将生成.exe。该可执行文件仅运行存储在dll中的应用程序(dll可以直接通过dotnet full_generation_dll_path执行)。我想.exe输出在服务/守护程序场景中很方便。

项目通常具有某些依赖项(托管和非托管),因此输出包含许多dll。看起来没有理由合并exe和dll,因为您仍然有许多其他dll(并且应用程序逻辑也应该与执行应用程序的方式分开)。

从分发的角度来看,包含执行应用程序所需的全部文件的单个文件似乎很方便,因此此功能was added to到.Net Core 3

© www.soinside.com 2019 - 2024. All rights reserved.