4
votes

I'm trying to use the new updater in the Windows 10 Fall Creators Update to update my UWP app that is distributed outside the Store.

I'm using a .appinstaller file and trigger the install with a link like this: ms-appinstaller:?source=https://xxx.s3.amazonaws.com/xxx.appinstaller

The install of the initial and the updated version both work this way.

However, the update is never installed automatically.

My .appinstaller file:

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
   xmlns="http://schemas.microsoft.com/appx/appinstaller/2017"
   Version="1.0.77.0" 
   Uri="https://xxx.s3.amazonaws.com/xxx.appinstaller" > 

   <MainBundle 
       Name="4f479232-f509-428e-a58a-65652003c90f"
       Publisher="CN=xxx, O=xxx, L=xxx, C=DE"
       Version="1.0.77.0"
       Uri="https://xxx.s3.amazonaws.com/xxx/Packaging_1.0.77.0_Test/Packaging_1.0.77.0_x86_x64.appxbundle" />
    <UpdateSettings>
         <OnLaunch/>
    </UpdateSettings>
</AppInstaller>

the updated .appinstaller file differs only in the version beeing 1.0.78.0 and the MainBundle-Url pointing to the updated package. All the code signatures are valid.

I have not modified the app in any way for this updater.

Catching the updater connecting with Fiddler was unsuccessful.

I would really appreciate any help with this, as I don't even know how to debug this. Does the App Installer create logs anywhere?

--

PS C:\Users\marvin> Get-AppxPackage -Name 4f479232-f509-428e-a58a-65652003c90f


Name              : 4f479232-f509-428e-a58a-65652003c90f
Publisher         : CN=xxx, O=xxx, L=xxx, C=DE
Architecture      : X64
ResourceId        :
Version           : 1.0.77.0
PackageFullName   : 4f479232-f509-428e-a58a-65652003c90f_1.0.77.0_x64__1mez93s8c8axt
InstallLocation   : C:\Program Files\WindowsApps\4f479232-f509-428e-a58a-65652003c90f_1.0.77.0_x64__1mez93s8c8axt
IsFramework       : False
PackageFamilyName : 4f479232-f509-428e-a58a-65652003c90f_1mez93s8c8axt
PublisherId       : 1mez93s8c8axt
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
Dependencies      : {4f479232-f509-428e-a58a-65652003c90f_1.0.77.0_neutral_split.scale-100_1mez93s8c8axt,
                    4f479232-f509-428e-a58a-65652003c90f_1.0.77.0_neutral_split.scale-400_1mez93s8c8axt}
IsPartiallyStaged : False
SignatureKind     : Developer
Status            : Ok

EDIT: Since posting this I have found a page describing logs and error codes: https://msdn.microsoft.com/en-us/library/hh973484.aspx# In the AppXDeployment-Server log I see an event that gets logged on every start of my app:

Type: info, DeploymentOperation 31
Message Started deployment UpdateUsingAppInstallerOperation on a
package with main parameter 4f479232-f509-428e-a58a-65652003c90f_1.0.77.0_x64__1mez93s8c8axt 
and Options: 0 and 0. See http://go.microsoft.com/fwlink/?LinkId=235160 
for help diagnosing app deployment issues.

Edit 2: I have created a sample project that shows this issue here: https://github.com/Marv51/appxUpdater

You can download the compiled, signed and packed binary bundles from: https://testingappxupdater.s3.amazonaws.com/index.html

3
I am also unable to make .appinstaller work. See twitter.com/tonyvca/status/921693502722990082Tony
@Tony Install with .appinstaller works here, only the Updater part is not working. But I'm using this for a Desktop Bridge App, so there are no dependencies.marv51
I think that the AppInstaller Version should be 1.0.0.0 <AppInstaller xmlns="schemas.microsoft.com/appx/appinstaller/2017" Version="1.0.0.0" Uri="xxx.s3.amazonaws.com/xxx/Packaging_1.0.77.0_Test/…" />Tony
Your right, looks like it should be 1.0.0.0. I changed that and retested the updater: Didn't change anything. Thanks anyway.marv51
I am also having problems with the Updater. It does not update my App.Tony

3 Answers

3
votes

Here are the detailed steps I followed:

  1. Have a properly constructed AppInstaller file. In my test, Uri element under <AppInstaller> attribute referred to itself.
  2. Install it by using the custom scheme ms-appinstaller:?source=<http://...>
  3. Verify the version that is installed is the one specified in the AppInstaller file.
  4. Modify the AppInstaller file by incrementing the Version element under <AppInstaller> attribute.
  5. Modify the specified app package under the <MainBundle> or <MainPackage> attribute to refer to the new version. Make sure the Name, Version, Publisher all match the elements specified in the app manifest.
  6. Save it and upload to the same location in the web server.
  7. Either wait 24hrs or move your system clock forward by 24hrs. how to change system clock
  8. After 24hrs, launch the app again and close it. On this launch of the app, the update check should be triggered. Upon closing the app, the update will complete successfully.
  9. Launch the app again and this time it should be the new version. Depending on the size of the update, it might time longer for the update operation to complete.
1
votes

@marv51 - Windows 10 deployment service currently only checks for an update once every 24 hours per launch of the app. So, try to launch the app again after 24hrs and the update should be applied once the launched app is closed.

If you don't want to wait, you can forward the system clock 24hrs and launch the app again to trigger the update.

0
votes

I could not get this to work with the Fall Creators Update. However, it is working now in build 17127 with the new tooling from VisualStudio 2017 15.7 Preview 2 and the preview SDK.

The new VisualStudio Preview lets you configure the update URL on package creation. In my inital testing it appears to work without issues.