【问题标题】:Task.Start .NET CORE Unable to load DLL combase.dll error Windows 7Task.Start .NET CORE 无法加载 DLL combase.dll 错误 Windows 7
【发布时间】:2016-12-13 18:31:08
【问题描述】:

我们有一些使用基本 C# 任务对象的代码。但是,在 Windows 7 机器上开发时,尝试运行 Task.Start(); 会导致:

抛出异常:System.Private.CoreLib.ni.dll 中的“System.DllNotFoundException”

附加信息:无法加载 DLL 'combase.dll':找不到指定的模块(来自 HRESULT 的异常:0x8007007E)

在 Windows 10 开发机器上运行此代码时,一切正常。

在研究适用于 windows 7 的 combase.dll 版本时,到目前为止我还是一头雾水。

之前有没有其他人遇到过这个错误,如果有,您是如何解决的?

【问题讨论】:

  • 我认为您的 Windows 7 安装缺少一些二进制文件 (dll),尤其是您提到的那个。我会尝试修复 Windows 安装以复制任何缺少的依赖项Use the System File Checker tool to repair missing or corrupted system files
  • 运行实用程序报告一切都很好,没有错。文件仍然不存在。如果手动安装 Office,win 7 用户似乎可能拥有该文件(尽管 2010 安装没有该文件)。仍然找不到要安装在我的开发盒上的副本。注意到这是 CORE 的一个缺陷,为了避免我们的软件在运行 win 7 的用户上爆炸,现在切换到 Func 调用。
  • 升级到 1.1 后我也突然遇到了这个问题。折腾了几天也没解决。如果我找到了,我会把它放在这里。
  • 现在诚实地安装 Win 10 来解决这个问题。发布到 Twitter 上供其他人查看。
  • 我想避免安装 Win 10,因为这个问题意味着 Win 7 用户会过得很糟糕,我不想开发目前没有针对 Win 7 用户的解决方案。

标签: c# .net-core


【解决方案1】:

here 发布的兼容性图表中可以看出,对于较新版本的 netstandard 框架和 dotnet core,支持的最低 Windows 版本为 8.0 和 10。

Windows 7 根本不受支持,因此 dotnet core 将无法运行。我并不是说没有变通办法,但我不建议出于生产目的在 Windows 7 上托管 dotnet 核心代码。

自从 2 年前主流支持结束 (https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet) 以来,Windows 7 就已经是旧版了,所以不要指望 dotnet core 在任何时候都能兼容它。如果你必须支持 windows 7,恐怕你将不得不依赖经典的 dotnet 框架。

【讨论】:

  • 这绝对是答案 OP。 .NET Core 团队不支持 Windows 7。
  • 谢谢。去年我发布问题时,此信息不存在(或者当我们搜索它时无法在任何地方找到)。我们最接近答案的是 dotnet core devs 的一篇博客,说它还没有完成,所以我们放弃了那个项目并转向了不同的架构。
猜你喜欢
  • 2019-08-21
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2017-02-08
相关资源
最近更新 更多