自1709年以来HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths无效

时间:2018-02-04 17:48:47

标签: windows

我们所有的应用程序在WIN 10 Ver 1709更新后都停止了工作。

失败是dll not found

我已经确定了 path 子项 HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\xxx.exe已不复存在 应用于用于启动应用程序的系统路径。

要明确:

  
      
  1. 我们的典型目标机器是Win 10 home。
  2.   
  3. 我们所有的软件都已安装并正常运行。
  4.   
  5. 安装了WIN 10 Update 1709。
  6.   
  7. 我们所有的软件都停止工作。
  8.   

更改系统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 ,我发现除了我之外没有人遇到这种失败,这是不寻常的。

1 个答案:

答案 0 :(得分:1)

Win 10 1709存在一个问题,即应用路径的路径条目长度限制为大约250个字符。如果您的路径条目低于此阈值,则会按预期将其应用于应用程序的环境。否则,它就被丢弃了 我没有发现微软承认这是一个错误的任何信息,但这是我们的观察。 我们通过执行以下操作之一解决了此问题: *如果可能,请使用短路径减小路径字符串的大小,并确保路径仅包含实际需要的内容。 *如果路径仍然太长,那么我们使用我们创建的引导程序首先将路径应用到流程环境,然后启动所需的可执行文件。