【发布时间】:2018-02-09 00:07:35
【问题描述】:
在 WIN 10 Ver 1709 更新后,我们所有的应用程序都停止工作。
失败是dll not found
我已经确定 path 下的子键
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\xxx.exe 不再是
被应用到用于启动应用程序的系统路径。
要明确一点:
- 我们的典型目标机器是 Win 10 家庭版。
- 我们所有的软件都已安装并正常运行。
- 已安装 WIN 10 更新 1709。
- 我们所有的软件都停止工作。
更改系统 PATH 环境变量以仅包含我们的路径可以解决问题。 但这不是解决方案(由于其他已安装软件中的 DLL 冲突)!
创建一个 bat 文件,在调用我们的路径之前将路径设置为我们的路径 可执行文件也有效。注意:这本质上就是 App Paths 路径 应该做的。
有没有人知道
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths实现了吗?
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths 下的典型条目如下所示:
密钥:app.exe
子键:(默认)--- 值:[完整路径]\app.exe
SubKey: Path -------- Value: [目录的完整路径];[目录的完整路径];
Path 值就像 System Path env var
但是要意识到现有的注册表项和我们的代码在 WIN 更新完成后不会改变。
一个 BAT 文件,其中包含:
Set PATH=[full path to directory];[full path to directory];%PATH%
[full path]\app.exe
就是成功执行 app.exe 所需要的一切
这让我怀疑问题出在 App Paths 实现中。 由于 Microsoft 强烈建议使用 App Paths,因此我发现除了我之外没有人遇到此故障是不寻常的。
【问题讨论】:
-
你在注册的路径里放了什么特别的东西吗?比如,环境变量或类似的东西?你能提供一个这样的路径的例子吗?
-
我怀疑它自 1709 年以来就没有工作过。事实上,IIRC,几年前我使用了很多应用程序路径。 (抱歉,忍不住了。)
-
那么,安德烈亚斯,请解释一下观察结果,即在更新之前一切都在运行,而在更新之后一切都找不到 DLL。我们安装的代码没有改变,我们的应用程序路径的注册表设置也没有改变。如果您真的“经常使用应用程序路径”,请赐教。
-
只是说你怀疑我的观察是没有帮助的。您认为可能是这种行为的原因是什么?现在注册申请有新要求了吗?
-
尝试找出 SnippingTool.exe 的位置。 Explorer 和 cmd.exe 似乎表明它位于 c:\windows\system32,但您无法在文件对话框中选择它,并且 Everything(一个 NTFS 文件系统解析器)不认为该文件位于那里。这很奇怪。您也无法从实际找到 SnippingTool.exe 的位置(即通过 Everything)启动 SnippingTool.exe,只会得到一个空白的错误对话框;但是如果应用程序已经在运行,它会将焦点转移到应用程序上,因此它的启动方式存在一些错误。
标签: windows