如何仅发布具有依赖性的可执行文件?

时间:2019-07-11 17:50:19

标签: c# .net-core

我想创建一个依赖于框架的可执行文件,并且只能在Win x64上运行。

为此,我执行dotnet publish -c Release -r win10-x64。我期望只有我的exe,dll和直接依赖项。

相反,该命令生成win10-x64win10-x64\publishwin10-x64文件夹仅包含应用程序,没有任何依赖关系。 win10-x64\publish有236个文件,其中包括大量的api-ms-win-core-*。dll文件,这些文件似乎是本机的,而不是托管的。

那么如何生成仅具有直接依赖关系的可执行文件?

1 个答案:

答案 0 :(得分:1)

在dotnet发布的documentation中,看看它对--self-contained参数的含义:

  

与您的应用程序一起发布.NET Core运行时,因此无需在目标计算机上安装该运行时。如果指定了运行时标识符,则其默认值为true。

因此,由于您要使用-r参数指定运行时标识符,因此默认情况下它将创建一个自包含的应用程序。尝试将--self-contained:false添加到您的命令中,看看是否能达到您的期望。