net5 自包含 exe 遗漏了一些系统 DLL

问题描述

我正在将一个中等大小的 Win10 应用程序 (.NET Framework 4.8) 迁移到 net5-windows。该解决方案包含大约 30 个项目。

虽然迁移过程在 Visual Studio 2019(版本 16.8.3)中工作得相当简单,但唯一的问题仍然是将所有内容打包到一个独立的 exe 中。我没有为 VS 中的项目条目苦苦挣扎,而是使用 Scott Hanselmann in his blog 讨论的命令行方法。这也很顺利,并生成了一个大约 140MB 大小的 exe。

仍然存在一个问题:并非所有系统 dll 都包含在 exe 中。必须手动将以下内容复制到所选目录:

enter image description here

如果没有这些 DLL,应用程序将无法运行。

我的问题:这种行为的原因是什么,如何将这些 dll 包含在自包含的 exe 中?

解决方法

要将系统 DLL 包含到单文件应用程序中,您应该对 IncludeNativeLibrariesForSelfExtract 命令使用 /p:IncludeNativeLibrariesForSelfExtract=true 属性或 dotnet publish 开关,如单文件发布 design document 中所述

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...