我们所有的应用程序在WIN 10 Ver 1709更新后都停止了工作。
失败是dll not found
我已经确定了 path 子项
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\xxx.exe
已不复存在
应用于用于启动应用程序的系统路径。
要明确:
- 我们的典型目标机器是Win 10 home。
- 我们所有的软件都已安装并正常运行。
- 安装了WIN 10 Update 1709。
- 我们所有的软件都停止工作。
醇>
更改系统PATH env var仅包含我们的路径可以解决问题。 但这不是解决方案(由于其他安装的软件中的DLL冲突)!
创建一个bat文件,在调用之前设置路径的路径 可执行也有效。注意:这基本上是App Paths路径 应该做的。
有没有人知道如何改变
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
已实施?
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
下的典型条目如下所示:
密钥: app.exe
SubKey :(默认)---值:[完整路径] \ app.exe
SubKey:Path --------值:[目录的完整路径]; [目录的完整路径];
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 ,我发现除了我之外没有人遇到这种失败,这是不寻常的。
答案 0 :(得分:1)
Win 10 1709存在一个问题,即应用路径的路径条目长度限制为大约250个字符。如果您的路径条目低于此阈值,则会按预期将其应用于应用程序的环境。否则,它就被丢弃了 我没有发现微软承认这是一个错误的任何信息,但这是我们的观察。 我们通过执行以下操作之一解决了此问题: *如果可能,请使用短路径减小路径字符串的大小,并确保路径仅包含实际需要的内容。 *如果路径仍然太长,那么我们使用我们创建的引导程序首先将路径应用到流程环境,然后启动所需的可执行文件。