从.net-core-2.2升级到.net-core-3.1后,我发布的应用程序的outputdir中的dotnet.exe是什么?

从.net-core-2.2升级到.net-core-3.1后,我发布的应用程序的outputdir中的dotnet.exe是什么?,.net-core,.net-core-3.0,.net-core-3.1,.net Core,.net Core 3.0,.net Core 3.1,我们有一个使用httpsys的.NET核心web应用程序。我们正在将它从.NET Core 2.2升级到.NET Core 3.1,我在输出目录中发现了一些奇怪的东西 .csproj(相关部分)是 x64 netcoreapp3.1 win7-x64 Exe 发布项目时使用以下参数: dotnet publish-c release-o.\pkg.\SomeProject.csproj 在将TargetFramework更改为netcoreapp3.1(它是netcoreapp2.2)之前,

我们有一个使用httpsys的.NET核心web应用程序。我们正在将它从.NET Core 2.2升级到.NET Core 3.1,我在输出目录中发现了一些奇怪的东西

.csproj(相关部分)是


x64
netcoreapp3.1
win7-x64
Exe
发布项目时使用以下参数:

dotnet publish-c release-o.\pkg.\SomeProject.csproj

在将TargetFramework更改为netcoreapp3.1(它是netcoreapp2.2)之前,outputfolder不包含
dotnet.exe
。但是,自从升级后,它就这样做了。这似乎有点奇怪,因为exe的日期是2016年6月15日,版本号是1.0.1.4500


我找不到有关此更改的任何文档。为什么这个可执行文件在我的outputdir中,为什么会发生变化?

我们遇到的问题是由nuget包
ChilkatDnCore
引起的。它依赖于
Microsoft.NETCore.App
(>=1.0.5)。使用.NET Core 2.2,此软件包升级到2.2.8(nuget上的最新版本)。对于.NET Core 3.1,不再发布此软件包。这导致依赖于错误的.NET核心DLL,导致将旧的dotnet.exe复制到输出文件夹

我们尝试了两种解决方案(取得了成功): 1.我们删除了对
ChilkatDnCore
的依赖。NETCore3.1提供了更多的证书处理,因此不再需要依赖关系。 2.我们创建了一个自定义版本的nuget软件包,不依赖于
Microsoft.NETCore.App
。显然.NET核心应用不需要它

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

  <PropertyGroup Label="Globals">
    <Platforms>x64</Platforms>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
    <OutputType>Exe</OutputType>
  </PropertyGroup>