I have checked the Shared directory and it is empty.
I have many doubts about the use of AppUpdate. Can I use the class instead of the library?
That Shared is empty is a bit strange. Worth investigating.
About the use of the class, absolutely yes. The library is there just to have a "container" for the class and the service. You are free to use all the code the way you mostly like (and, obviously, free to amend, modify and personalize it). if you choose to go with the class, please don't forget to add the newinst2 service too (yes, you can name it differently but then you have to modify the Manifes accordingly)
Is it possible to execute the update only, only, when the user presses a button?
Yes. There's no need to check at app start. All the methods of the class are designed to work "on request". Whether you call one after the other (read current version, read webversion, compare, download, install) or the "do it all" one, you can place your call in a button click. As said, I've used your exact code and it worked for me.
I do not want to bother you, I'm stealing you a lot of time. Do it only if you can really dedicate a time that you do not mind dedicating to help me.
It will be a 10 minutes operation. I plan to do it at lunch time. I am curious to read the resulting logs.