Windows Store sign up

Yes, apps in the MAS and Windows Store must NOT have external registration codes.

I have a constant in my app that tells it whether it is compiled for a store or not. If it is on a store, it removes the non-Store registration menu items.

Thanks to eugene’s indispensable document, I have now fought my way through the DesktopAppConverter process and gotten three appx results that each run on the (VMware) environment they were created in.

I have not dragged copies of any dll 's as suggested in an earlier post and I am using Install Creator Pro from Clickteam to build the silent installer. That all seems to be okay.

Where I get stuck is that I do not seem to be connecting to AppData Roaming. Eugene’s document mentions that it may not be where I am expecting it to be, but I am not sure where to go look for it.

Has anyone else seen/solved this issue?

[quote=335563:@James Bailey]Where I get stuck is that I do not seem to be connecting to AppData Roaming. Eugene’s document mentions that it may not be where I am expecting it to be, but I am not sure where to go look for it.

Has anyone else seen/solved this issue?[/quote]

SpecialFolder.ApplicationData is for sure available. My apps would not run otherwise. But do not try to access it with a path yourself in Roaming. In effect, the AppX shows the app a Windows file structure that is in fact within.

Besides, AppX are sandboxed once placed in the Windows Store.

This is gonna take some more exploring on my part. I use SpecialFolder.ApplicationData to set up and access my files. My understanding is that it, on its own initiative, goes to Roaming. That Is certainly what happens in my Windows Xojo builds. But the Appx version fails.

There is a recent (April) Microsoft document that lists all the places that “All apps” can access and a separate list for places that Store apps can access. ApplicationData is in the former list, but the latter is pretty much limited to the Downloads folder.

docs.microsoft.com/en-us/Windows/uwp/files/file-access-permissions

My apps are quite large so it takes a while to make new ones. I will try moving my stuff to Downloads and see if that works.

James, you are making it more complex than it should be. Just use a subfolder in SpecialFolder.ApplicationData, and don’t try to second guess where it actually is. Let the AppX do its magic and you will be fine.

When you say the AppX version fails, are you trying to access Roaming directly ?

Incidentally, the same situation applies with sandboxed apps in the Mac App Store. SpecialFolder.ApplicationData is not where it is in non sandboxed apps.

i have been trying the DesktopAppConverter on all three of my apps: one self-contained, one with user files, and one with both user files and binaries of open source helper apps. All are quite large. i seem to get consistent results based on the following code snippet:

If App.SwitchFoldersToDownLoads Then
AppSupportFolderFolderItem = SpecialFolder.UserHome.Child(“Downloads”)
Else
AppSupportFolderFolderItem = SpecialFolder.ApplicationData
End if

If I switch my folders and files to the Downloads folder, they set up correctly there. If I leave them in AppData, they do not get set up and the app fails. Neither seems to support running helper apps. I do not know what any of this means. has anyone had success in the last month or so creating appx apps that access AppData?

James, I don’t understand what may be happening here. In all my Windows Store apps, I simply point to a subfolder within SpecialFolder.ApplicationData. In fact, it is exactly the same code for the non AppX and the Appx.

Dim f as folderItem = SpecialFolder.ApplicationData.child("com.matchsoftware.checkwriter") if not f.exists then f.createAsFolder

Then I copy anything I need like pictures, save settings and stuff.

Next boot, I load settings and pictures.

Actually, I am surprised you can access Downloads, since it is normally off limit for Windows Store apps.

In a first test the installed .appx Application could access AppData and any other folders.
This is probably because the Converter created an AppX package which displayed “Full Trust” during installation. Or in other words: “no restrictions”.

But maybe Microsoft doesn’t allow this once the App goes to their Store? They probably want us to be more restricive

I can’t say, as I haven’t come to that yet :slight_smile: Any insights and experiences from between having an .appx and “going live in Store” would be great to read.

No, you are right. They are full trust in the store as well, so they can access any folder. My bad. I was confusing with VS native apps.

BTW this is the reason why you have to go through your own Microsoft rep for him to vet the app before giving the go ahead for full trust.

Thanks a lot for this guide, @Eugene Dakin . This certainly has been a head start.

Meanwhile, Microsoft has quite a good documentation: Desktop conversion for UWP apps

Especially this guide: Package an app using the Desktop App Converter (Desktop Bridge)
It’s very easy to follow and works just fine with Xojo built Apps. Well done, Microsoft!

I went the route “Package an app that doesn’t have an installer”. So it’s (no longer?) required to first build an (InnoSetup) installer.
Just put the Xojo App in a “template folder”, and let the DesktopAppConverter do it’s magic.
Their Parameter Reference is worth looking at


If you have your own Windows Code-Signing Certificate:

  • It seems not necessary to “- Sign” using the DesktopAppConverter.exe
  • make sure the “Publisher” matches exactly to your own CodeSign-certificate. You most likely don’t have a certificate with just -Publisher “CN=MyPublisher”, but more information in that String (location, country, 
) For example: “CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US”
  • you then can CodeSign the .appx with your own certificate, so it’s not necessary to install that self-created one before you can install your .appx to test the converter app.

What I didn’t get working is the Parameter -AppFileTypes (in order to associate file extensions with that app).
What worked is modifying the Manifest manually (after running the DesktopAppConverter) and re-package the .appx.
Eugene has documented this. I just needed to add another Parameter (i guess it was: -l), because of the dpi-dependent assets that seem to be generated today (but not in Eugene’s guide).
Another way I tried is through an InnoSetup-Installer (where the registry items are being created to associate the filetypes). That has built a good Manifest-template, which I then added to my preferred way (*) “Package an app that doesn’t have an installer”.
As of today, I don’t have the proper file-icon associated yet (it always uses the icon of the app, not a custom filetype-icon). But that seems doable by editing the Manifest appropriately (and adding the icons to the Assets). I’ll try that sooner or later and add the required steps, if that’s of interest to others :slight_smile:

(*) why do I like this better? Well, there is just much, much less “noise” in the Package
 just compare what gets generated with and without an Installer. I prefer it to be as “clean” as possible.

Is there a way to determine if an Application has been installed via Windows Store?
I can look for the subfolder “AppxMetadata” or files such as “AppxSignature.p7x” or “resources.pri” next to the exe, which indicate that the Application is within an .appx package. But - is the .appx manually installed (using own CodeSigning) or via Store?
Are there other files added when downloaded/installed via Store?

I guess one way would be to read the Contents of the file “appxmanifest.xml” and look at the “Publisher” (that should be different when installed via Windows Store from what I could read out of the Documentation)? Quicker and less overhead would be to just check for other “App Store specific” files.

Why do I ask? Because I need to remove certain functionality (such as “update the app”). And I don’t want to build 3 Windows Apps (e.g. using a constant “constIsAppStoreBuild”, but use the same built App for all “install - cases” (1. via setup.exe; 2. via Windows App Store; 3. via .appx Installation). 1 and 3 would have an “update” (with either a setup.exe or .appx), 2 obviously not.

I guess you can simply test the app is within an AppX and assume it is in the Windows Store. Even sideload, you cannot update it anyway.

Oh, one could download an update as .appx to a temporary folder and “launch” the .appx (which then updates the already-installed package if the version number is higher).
Sure, as long as the App isn’t offered as .appx it’s sufficient to just check for “appx stuff” around the .exe.
I just like to be prepared for the case it’s being decided (not my decision
) to offer an .appx alongside an installer.

Thank you :slight_smile:

One question (at the moment)

[quote]Professional Windows 10 or the Enterprise version of the Operating System are able to run the appx
programs.[/quote]

Does this mean that if we are successful getting an app in the store, that people with Windows 10 Home will not be able to use the apps?
Or does this relate to a developer running an APPX for testing without going through the store first?

[quote=338213:@Jeff Tullin]One question (at the moment)

Does this mean that if we are successful getting an app in the store, that people with Windows 10 Home will not be able to use the apps?
Or does this relate to a developer running an APPX for testing without going through the store first?[/quote]

The Pro and Enterprise requirement is just for the developer but the Store app can run on Windows 10 Home.

Following eugene’s instructions, I am able to create appx files for my apps, but the manifests have two lines referencing “restrictedcapabilities.” Submission to the App Store fails because of them.

These lines in the manifest seem to be there even with a trivial single line Xojo program.

Is this a common issue? If so, is there a next step?

Hi Jurg,

I am in the final stages of an update for the Get App in Windows Store article, and the /l arguement in the MakeApp command for rebuilding the Appx package causes icons that don’t exist to be ignored. To create icons for your App for the Windows Store, you will need to design your png icons. Yes, there are many png files, and each one is for various types of applications. These six png’s are the miniminum that are needed, and it seemed to work at 150x150

AppStoreLogo.png AppLargeTile.png AppList.png AppMedTile.png AppSmallTile.png AppWideTile.png

I use the following MakeAppx command, and it worked on my machine with Version 1703 (OS Build 15063.483):

makeappx pack -d "C:\\MyApps\\MyApp\\PackageFiles" -p "C:\\MyApps\\MyApp\\MyApp.appx”

I am hoping to have the article update finished this weekend. Stay tuned :slight_smile:

The latest version of the article is available at Build an Appx Installer for Microsoft Store with Xojo

Updates:
-Latest Windows OS Version 1703 Build 15063.483
-Updates to icons that include building the package and about 50 default icons now used by Microsoft
-No external installer is needed, as DesktopAppConverter.exe does all of this
-Updated new directory locations for MakeAppx

[quote=340975:@James Bailey]Following eugene’s instructions, I am able to create appx files for my apps, but the manifests have two lines referencing “restrictedcapabilities.” Submission to the App Store fails because of them.

These lines in the manifest seem to be there even with a trivial single line Xojo program.

Is this a common issue? If so, is there a next step?[/quote]
Hi James,

If you are using API’s then the Capability XML code may need to be included. Here is an article from Microsoft that may help:
How to Specify capabilities in a package manifest