Windows 8 RT Marketplace Apps and the File System

I’ve been exploring how Windows 8/RT stores Metro apps. Why? Partially to learn some of the stuff I’ll talk about here and partially because I like exploring how Windows works.

Windows “Store” apps are stored where Windows keeps all programs; The Program Files folder. In there is a folder called “WindowsApps”. In this folder each app will have a folder. The folders name will also include a lot of extra information besides the apps name. It includes what platforms the app will run on (or neutral if all), the version number, and usually the publisher.

One thing you may notice is that an app may be in there more than once, each with a different version number. The newer version includes only the files that were changed between versions. This does waste some space, though not as much as it would if it replaced the old files. Why it does this it do this? Honestly I don’t know. My guess is for roll back reasons. (Currently there is no way to roll back so I’d guess they plan to add it.) If you want to get the space back you can copy the files from the old version to the newer version, keeping the version of files in the newer version of the app. Interestingly, Microsoft seems to have started patching by merging the two folders for you as of the 11/13 Patch Tuesday. I don’t know though if it will “cleanup” after its self by merging apps that were in separate folders.

If you’re a developer I have some good news for you. First HTML5/JavaScript/CSS3 apps are NOT compiled, encrypted, or in some form modified from the original files. This means that you can open the folders up and see the source as the developer created it. XAML/C#/VB apps are a bit different, more like with Silverlight XAPs in that the XAML files are there but the code is in a DLL that could be encrypted, which is up to the developer. I would note however that the apps are protected so if you modify a file the app will crash when you try to run it, though not till the app tries using that specific file.

If you have multiple users on your machine, there is good news for you. Windows doesn’t re-download the app for each user. Instead it just keeps one copy of the “executable” and a separate folder to store per user data (like saved games). This per user folder is located in a user’s local AppData folder under a folder called Packages. There is a folder per app there, with the same name as it has in WindowsApps (though without the version number).

Now a personal favorite trick of mine is to use NTFS symbolic links to make Windows take better advantage of a multi drive system. “Sadly” Windows 8 seems to be smarter about them and you cannot use them as easily. Sadly this means that you cannot move Metro Apps around (to save drive space for example) or the unique user data for them (to move saved games between machines for example).

In the end we learn one thing really; Microsoft has really thought out how Marketplace apps work. They are tamper proof and try to use as little space as possible. Good for the average user. Not so good for hackers.

by Shmuelie Englard aka @shmuelie

You may also like...

4 Responses

  1. TeeJay SD says:

    I believe it keeps the multiple versions since each user can have a different version installed. For example when I create a new account, I have to re-update Camera, Finance, Music, Photos… etc.

  2. Tremendous statement shared about windows 8 apps and file system that is really fantastic allocation for all. I am simply satisfied after reading this post and this will be useful to me. Thanks for sharing this post about windows 8 RT market place apps and file system. Keep it up ! 🙂