2015-06-19 687 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下創建)。

相關問題