我们已经开始在ASP.NET应用程序中使用WinHttpHandler NuGet包。在开发机器上它运行良好,并且也适用于我们的临时环境。该应用程序的目标是.NET 4.6.1。
但是,在生产时会抛出以下错误:
System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-localization-l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我已经搜索了很多关于这个问题的信息,但是找不到关于这个dll的任何有意义的信息。 (我在论坛中发现有些人在遇到类似问题时手动将dll复制到他们的生产服务器,但这似乎不是正确的解决方案。)
这个dll来自哪里?它应该明确安装吗?
(在我的开发机器上,我在C:\Windows\System32
的{{1}}上找到了它,我在C:\Windows\System32\downlevel
的分期计算机上找到它,但我不知道它来自哪里。)
答案 0 :(得分:3)
我认为您对API Sets有疑问。 该DLL仅适用于Windows 8 API Sets,并且如msdn
所述API集依赖于库加载器中的操作系统支持 有效地将命名空间重定向组件引入到 库绑定过程。受各种输入的影响,包括API 设置名称和绑定(导入)上下文,库加载器执行 对目标主机二进制文件的引用的运行时重定向 包含适当的API集实现。
所以我的建议是联系包的所有者并详细描述您使用该包的环境(操作系统,Target .Net Framework Identifier,Target .Net Framework Version等)。 希望他们能找到并修复错误。
更新:以下是对该软件包GitHub page的讨论。对这个问题的正确长期解决方案尚不清楚。
TLDR:安装Visual C++ Redistributable for Visual Studio 2015解决了这个问题。