我想创建一个依赖于框架的可执行文件,并且只能在Win x64上运行。
为此,我执行dotnet publish -c Release -r win10-x64
。我期望只有我的exe,dll和直接依赖项。
相反,该命令生成win10-x64
和win10-x64\publish
。 win10-x64
文件夹仅包含应用程序,没有任何依赖关系。 win10-x64\publish
有236个文件,其中包括大量的api-ms-win-core-*。dll文件,这些文件似乎是本机的,而不是托管的。
那么如何生成仅具有直接依赖关系的可执行文件?
答案 0 :(得分:1)
在dotnet发布的documentation中,看看它对--self-contained
参数的含义:
与您的应用程序一起发布.NET Core运行时,因此无需在目标计算机上安装该运行时。如果指定了运行时标识符,则其默认值为true。
因此,由于您要使用-r
参数指定运行时标识符,因此默认情况下它将创建一个自包含的应用程序。尝试将--self-contained:false
添加到您的命令中,看看是否能达到您的期望。