我试图运行ClickOnce安装程序并从Windows 7中收到此无用的错误消息:" Windows无法打开此文件"。
文件扩展名为.appref-ms
有没有人看过这个或有任何建议?
答案 0 :(得分:1)
我在客户端的计算机上遇到过这个问题。看来操作系统不知道文件扩展名的正确关联,但实际上.appref-ms不是正常的扩展名,也不与任何程序直接关联。
我最终找到了以下页面:
这包含有关恢复可能已损坏的注册表项的一些信息,这可能会导致此问题。但是,在我看来,它给出了将dfshim.dll与.appref-ms关联的错误建议。当我这样做时,它在注册表中创建了与该dll的关联,但是在检查工作机器的注册表时,不存在这样的关联。此关联还会导致.appref-ms文件丢失其特定于应用程序的图标,而是显示此图标:
此外,这个协会实际上没有成功启动我的应用程序,但对于其他一些实际上它可能正常工作(我不知道)。
正确的解决方案是恢复更多的注册表项,这些注册表项可以级联以允许窗口处理.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下创建)。