" Windows无法打开此文件" for .appref-ms extension

时间:2015-06-19 21:27:15

标签: windows windows-7 clickonce

我试图运行ClickOnce安装程序并从Windows 7中收到此无用的错误消息:" Windows无法打开此文件"。

文件扩展名为.appref-ms

有没有人看过这个或有任何建议?

Windows can't open this file appref-ms

1 个答案:

答案 0 :(得分: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

此外,这个协会实际上没有成功启动我的应用程序,但对于其他一些实际上它可能正常工作(我不知道)。

正确的解决方案是恢复更多的注册表项,这些注册表项可以级联以允许窗口处理.appref-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"

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