2015-06-19 686 views

回答

1

我有一个客户端的机器在这个问题上。看起来,操作系统并不知道文件扩展名的正确关联,但实际上,.appref-ms不是正常的扩展名,并且不直接与任何程序关联。

我发现下面的页面最终:

https://social.msdn.microsoft.com/forums/windows/en-us/9ff7867c-7e57-468c-a632-762a76f66f6d/windows-7-64-bit-unable-to-open-apprefms

这包含了潜在的修复受损的注册表项,这可能会导致这个问题的一些信息。但是,在我看来,它给出了将dfshim.dll与.appref-ms关联的错误建议。当我这样做时,它在注册表中创建了一个与该dll的关联,但是在检查工作机器的注册表时,不存在这样的关联。此关联还会导致.appref-ms文件丢失其应用程序特定图标,并显示此图标:dfshim.dll icon

此外,此关联实际上并未成功启动我的应用程序,但对于某些其他应用程序,它可能实际上有效(I不知道)。

正确的解决方案是恢复更多的注册表项,这些注册表项可级联以允许Windows将appapp-ms文件更像应用程序,而不是使用程序打开的文件。必要的键是低于(也许是我太过于热衷包括一对夫妇是不是绝对必要的,但至少其中一些):

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\.appref-ms] 
@="Application.Reference" 

[HKEY_CLASSES_ROOT\.application] 
"Content Type"="application/x-ms-application" 
@="Application.Manifest" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Application.Reference\shell] 
@="open" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Application.Reference\shell\open] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Application.Reference\shell\open\command] 
@="\"C:\\Windows\\System32\\rundll32.exe\" \"C:\\Windows\\System32\\dfshim.dll\",ShOpenVerbShortcut %1|%2" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Application.Manifest\shell] 
@="open" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Application.Manifest\shell\open] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Application.Manifest\shell\open\command] 
@="\"C:\\Windows\\System32\\rundll32.exe\" \"C:\\Windows\\System32\\dfshim.dll\",ShOpenVerbApplication %1" 

这似乎适用于这两种。应用和.appref-MS类型的文件。第一个键将.appref-ms标识为类“Application.Reference”。 “Classes \ Application.Reference”下的后面的键定义了这些类型的启动方式。这些并不是简单的“开放式”协会,Windows试图帮助您创建(并且将在HKCU而不是HKLM下创建)。

相关问题