I'm searching a way to update a Windows Universal App without the Store, so i can provide the appxbundle file from my own server. I can download this package from within the app, but i have not found a solution for installing it. The device portal core API allows only the Installation of apps, but not updating. So is there a way I can start the updating process from within my app's code?
You can package your app for Web Install, which works very similarly to Click Once for classic desktop apps. This involves pointing the user to a link with ms-appinstaller: protocol which will launch the app installer and install the package. You define the .appinstall file which contains a standardized description of the components of the app, the location of potential updates, and specifies an update policy. Automated update are described in depth in this blog post.
Update
In addition to web install, you can apparently update the app using PackageManager. See this blog post for details.
Related
I am trying to make autoupdate check and upgrade procedure (now from location on shared drive, in future maybe from server).
I have created "Visual Studio Installer" project that creates setup and it is possible to install the app. Also I have created another binary that searches for updates - if there are updates and user wants it, it runs the setup and app ends - if no updates, it runs main program. I have selected 2 binaries system in order to have possibility to run app without updates checking.
But If I confirm the update I am getting "Another version of this product is already installed. error code..." dialog.
I am not sure if my approach is right, probably not. But I found only commerce solutions and ClickOnce which seems to be for updating from network.
Thank you in advices for your answers.
It seems you are looking for something that allow you to have folder in your disk or a shared drive that can be used as local server to help you make updates without using internet connection , I introduce you to Squirrel.Windows its an open source installation and update framework for Windows desktop apps.
Here is link for Getting Started With Squirrel.
And here is a Youtube Video by Tim Corey where he explain Squirrel practically with demo windows forms project.
Happy Codding...
Is there a way for a UWP to have a self uninstall function?
Scenario is a LOB UWP app the we want to be uninstalled remotely if user has been marked unauthorized.
Such an API is not currently available. If it were, its home would be the StoreContext class which currently hosts the ability to uninstall optional packages ("DLCs"), but does not offer the same for the app itself.
I followed these two docs (Doc1, Doc2) to integrate Feedback hub in my app. I used NuGet to install the Microsoft Store Services SDK.
As recommended I am using StoreServicesFeedbackLauncher.IsSupported() to check if the Feedback hub is available or not. This works locally on my machine, but in production all customers hit System.Exception with message "Method 'StoreServicesFeedbackLauncher.IsSupported()' was not included in compilation, but was referenced in HomePage.<feedback_tapped>d__23.MoveNext(). There may have been a missing assembly."
I have read the docs again and don't seem to have missed any of mentioned the steps.
Edit
This app is a Desktop Bridge app. The solution has a UWP app which communicates with a win32 exe. I am trying to launch the app from UWP app. The solution has a Windows Application Packaging project to package the app.
I am considering deploying my application via the windows store apart from the traditional website download (via an msi).
I created the appx package with the Desktop App Converter tool.
The application does some updates checks, and when being deployed via the windows store I would like to disable such checks.
The question is how to detect if the application was deployed via normal msi or via the windows store.
To add to nikos' comment, GetCurrentPackageFamilyName will return an error APPMODEL_ERROR_NO_PACKAGE if it's run outside the UWP context (i.e. the MSI scenario you mention).
Note that this API is dependent on Windows 8 or greater, which will preclude the app from running on Windows 7. Your can work around this by dynamically loading the API. More info here.
I want my application to automatically check for updates and update the application if needed. I installed InstallShield Limited edition, but when I went to the update section I found out that I need to install FlexNet which requires me to purchase it.
I found out that Windows has stopped supporting Windows Installer which is why in Visual Studio 2013 it's not listed in the setup and deployment section.
I also read about ClickOnce, but there is a small issue when I tried to deploy my application to the FTP server. It asked for the username and password, but it added a warning that these values will be in plain text! So, what should I do? Is there another third-party way of creating an installer and setting up automatic updates?
I've used ClickOnce with dozens of applications and have never seen the username/password prompt. My process is:
Declare the application is downloaded from "http://www.yourSite.com/yourApp/"
Publish to folder "yourApp" in whatever location you want
Drag and drop that whole folder into your WWW space on your server
Email your users the link "http://www.yourSite.com/yourApp/yourApp.application"
For updates, just repeat this same process (except emailing users), and everything else takes care of itself. Be sure check the box in your application settings that tells it to check for updates of course.
The prompt about the username and password only applies during the deployment. So I wouldn't deploy the app using FTP in a Starbucks using their Wi-Fi, but it should be fine at work or on your private network at home.
Consider looking:
How to: Manage Updates for a ClickOnce Application
How to: Check for Application Updates Programmatically Using the ClickOnce Deployment API
You can distribute your application using a webserver, even your application can run from a link in a web page.
And also you can check for update using code.