WPF .NET Core 3.1 发布了缺少 DLL 的自包含单个 exe



有一个WPF .NET Core 3.1应用程序,它在计算机上工作了一段时间,然后它将停止打开。 查看事件查看器时看到此错误:

说明:.NET Core 应用程序失败。 应用:我的应用.exe 路径:C:\文件夹\MayApp.exe 消息:要执行的应用程序不存在:"C:\Users\user\AppData\Local\Temp.net\MyApp\002t0akn.2dd\MyApp.dll"。

如果您删除该文件夹并重新启动该应用程序,它将起作用。 知道为什么吗?

应用已发布,.netcoreapp3.1,自包含,win-86,生成单个文件并准备运行

NET Core的"单个文件"机制很像旧的自解压ZIP可执行文件;它使分发更容易,但它仍然需要将所有依赖文件转储到某个地方才能运行,看起来特定的临时文件夹可能会给你带来问题。

该过程在 Microsoft 的文档中进行了描述:

提取位置

对于单文件应用,提取目录<base>/<app>/<bundle-id>

  • <base>

    • DOTNET_BUNDLE_EXTRACT_BASE_DIR环境变量(如果已设置(。
    • 否则,默认为:
      • 窗户:%TEMP%.net
  • <app>是单 exe 二进制文件的名称

  • <bundle-id>是唯一的捆绑标识符。

您可以尝试禁用单文件打包或调整环境变量以使用瞬态较少的文件夹进行提取。

最新更新