If you start from scratch, I'd suggest to use MSIX [0] instead. It makes auto update trivial to implement with PackageManager.UpdatePackage(url_to_your_msix)[1] or plain execute via "ms-appinstaller:?source=url_to_your_msix". It'll do diffs properly and you also get package reflection for free via WinRT apis (such as where app is installed, appdata location, app version, etc).
[0] https://docs.microsoft.com/en-us/windows/msix/overview
[1] https://docs.microsoft.com/en-us/uwp/api/windows.management....