其實之前就在微軟的 Surface RT 研究過這問題,剛好前陣子為了能體驗不同的 Windows RT 硬體,又跟朋友借來台灣有開賣的 ASUS VivoTab RT TF600,就順道仔細重測並記錄可能會發生的狀況。(編註:官方消息指出台灣將會有 Surface RT)

醜話說在前,我個人不推薦更改預設目錄。不過有些人可能打開他的 Windows RT 後,發現磁碟 C 只有如下圖空間,就會有股衝動想把 APP 搬到外置的 SD 卡中安裝。

警語:請注意!本文純個人研究測試分享,不保證修改後系統運作無誤,且未查到微軟官方有任何文件認可此修改

Windows RT 安裝 APP 的預設目錄是在「C:\Program Files\WindowsApps」,而 Windows 8 其實也在相同位置。假使希望更改 APP 預設安裝的位置,方法看似簡單,但有些眉眉角角一定要注意。

理論上,使用搜尋功能再輸入「regedit」到登錄編輯程式,參考下面位置修改「PackageRoot」的指向位置就算收工。

HKLM\SOFTWARE\Microsoft\Windows\CurrenVersion\Appx

只是事情沒這麼簡單,事實上 PackageRoot 的值會因為系統預設權限關係而無法直接修改。請在機碼中的 Appx 目錄位置按滑鼠右鍵,叫出功能表選擇「使用權限」。

接著選擇「進階」。

可以發現這個機碼的目錄位置預設擁有者為「TrustedInstaller」,所以就算是帳號身分具有 Administrator 權限也無法直接改。

想改就請點擊變更,把擁有者改成 Administrators 群組。

檢查及確認權限。

這樣就能將 PackageRoot 機碼改成想要的位置。修改完請記得重開機讓機碼生效

很多國外文章都只講到上面這邊,因為對於新下載的 APP 來說,可以正常進行安裝沒問題,而且是裝到預期的 SD 卡中;但遇到系統內建好的 APP 要線上更新,則會看見如下圖的悲劇。

更新時會完全失敗,並且出現「發生問題,因此無法安裝這個應用程式,請再試一次。錯誤碼: 0x80073cfd」的詳細訊息。

還好,解決方式比改位置簡單,參考下圖把已內建的 APP 解除安裝,再到市集搜尋並下載就好了。

或許有人想舉手發問,是不是有這狀況的 APP 都要這麼做?答案是...對!系統內建多少個,更新失敗有幾個,就是重複做上面動作,基本上我目前都能在市集找到系統就內建的 APP。

假使連重新下載安裝的 APP 還是會出現 0x80073cfd 錯誤。

請確認使用的 SD 卡是否為 NTFS 檔案系統格式。

最常見都是沿用記憶卡預設的 FAT32 格式而造成問題。比較快的方法當然是重新格式化,不過萬一 SD 卡裡面已經有資料了,搬來搬去嫌麻煩的,可以參考下面指令直接轉換。x 代表磁碟代號。

 convert x: /fs:ntfs 

上述設定修改假使有疏漏,印象中看過不能裝 APP 的錯誤不只 0x8007cfd 一種,還有一個是 0x80070011 的錯誤訊息,另一個則漏掉記錄了。一般我會建議重新檢視哪裡有少做的步驟,不然就請改回原來位置吧。

後來再深入研究,測試國外針對這問題有另一種不改機碼的方式,是把原來放在「C:\Program Files\WindowsApps」目錄及其資料,通通搬到 SD 記憶卡的自訂目錄中,再用 Junction 的方式把「C:\Program Files\WindowsApps」跟自訂目錄做連結。

很不幸地,這個方法在我的測試過程有幾個很嚴重的問題會卡關:
1. 需先取得 WindowsApps 目錄的擁有者權限,才能搬動資料。
2. WindowsApps 目錄裡的所有資料,無法完全搬到另一個目錄中,會有幾個特定目錄的檔案存取被拒。
3. 就算忽視第二點的問題,把自訂目錄做 Junction 連結後,內建的 APP 會無法正常執行,也無法解除安裝,更別提要安裝市集上其他的 APP。

至於,這篇文章適不適用於 Windows 8,必須誠實地說我沒測過,有興趣就玩玩看,但別忘了我的警語。 /:)/

警語:請注意!本文純個人研究測試分享,不保證修改後系統運作一定正常,且未查到微軟官方有任何文件認可此修改