Check for Updates functionality For Windows application - c#

I am using Install shield limited edition to install my WPF application.
My current scenario is like this.
The created set up is available in our website for downloading.
User can download and then Install the set up on their own machines.
I have option to modify the software and will update the modified
installer into the website , so that users will get the updated
software.
My Next step:
In my application I am going to include “Maintenance release (Download Updates)” functionality. So that users can download the latest updations automatically from the software itself.
How Can I do this.? Any help would be appreciated.
Is there any facility in the Install shield for this?

I recommend NAppUpdate. It provides a framework with features for all tasks required for an update process. For example, it lets you check for updates from various sources (Web http / ftp), trigger update checks and replace your binaries with the updated ones.
You still will have to integrate this into your app, so it is not an "out of the box" solution. But my experience is that most out-of-the-box solutions eventually cause headaches due to limited customization possibilities and moreover are rarely free (if this is important to you).
A good introductory article can be found here: The philosophy behind NAppUpdate.

I don't think there is any facility to add that feature through install shield but there is a software update framework for .NET called NetSparkle. You can try that if you want. If you want to implement something on your own then its better to some other websites like code project that provide startup code or similar projects.
Here 's the link for NetSparkle.
There is also a similar question on StackOverflow : Code to check for updates, install new version of app

Related

How to allow a C# UWP app manage another UWP app?

I want to do some things, which I feel are very simple, but I cannot do. I have looked at numerous websites and StackOverflow questions. One question has helped me a bit by pointing me in the right direction, but I feel I need more than just that.
Here is what I want to do (basically):
I would like to make a UWP app that can be managed by another app.
By "managed" I mean:
Should be able to install the app.
Should be able to uninstall the app.
Should be able to check for updates and update the app.
It should also be able to launch the app.
Optional requirements:
While launching the app, I would like to have it set the page of a panel to a certain page. Also fine with it clicking on the navbar and change the panel's page
This would be an example of my app would be like (the one with the panel/nav): Question
I would also like an installer (something like a .exe file or .msi file) for the installing app. Not the .appinstaller that visual studio 19 produces. Something like Inno Setup produces.
Is any of this possible?
If so, please give me some sample code/instructions/links. I would be very thankful for any advice/points in the right direction as well!
If not, please suggest what other language/framework I should use to accomplish these tasks (Is "tasks" the right word?). I don't mind learning anything and have unlimited time. Don't care about the learning curve either. (If I need C++, I will do it. ONLY IF I NEED IT!!!)
Thanks all!
P.S. I know about WPF or WinForms. I don't want to use them because of their age.
As the Rob Caplan said, PackManager class doesn’t support uwp app, it is suitable for desktop app. So maybe you need to create a wpf app and use Desktop bridge to package it into uwp app so that you could use this api. In addition, you could find the sample here about installing appx package, its parent directory Windows-classic-samples/Samples/ also contains other samples you need, such as PackageManagerRemovePackage, etc, please check it.

Time-based trial for an application - how to check when app was downloaded

Is there any way to access the time the app was downloaded (or first launched, etc) as this would be of great help in implementing my trial run feature on my app.
I don't remember how does it stand on the Win8 platform, but for WinPhone7.0/7.5 there's a clear warning/guideline in the official documents from Microsoft, saying:
Do not rely on usage time limited trials to protect your app’s value.
Typically, it is best to protect the value of your full mode app by limiting trial access to key code paths. A user may uninstall and retry an app without restriction so a trial design that offers full mode behavior for a limited time provides only inconvenience as a barrier to reuse.
Source: Creating trial apps for Windows Phone
The problem in time-based trials is very simple: when you uninstall the application, the Phone's operating system will erase it completely. This means, that nothing will be left, not a byte. If you write any data to isostorage, it will be purged upon deletion.
So, if you make a time-base trial and store a "installed date", then the user will simply uninstall the application and install it again, and will be happy to get next free-trial period. If it is OK for you, well, then just be aware of that.
To make a true time-trial you'd need to create some internet service that your application will register to with the phone's/user's UUID, and then the app would need to check at the service to determine whether the trial has passed or have been used up by a previous installation..
What's more, Microsoft Phone Appp guidelines state that generally you should not create an application that "turns off some of its features" at some point of time. This irritates end-users and the makes the whole phone/platform "bad" from the user's point of view, because people don't like to lose what they once had.
IIRC, at some early point of time Microsoft even advised to create two separate applications: one free and without the extra features at all, and one paid with all extra features. Later, TrialModes were included in the Market's workflow and Microsoft's App Licensing API introduced a very easy way to determine if an app works in "free trial" or "fully paid" mode, depending on whether it was downloaded from the market for free or not.
I truly don't know which one is most-recent, so let me paste three:
XNA: http://msdn.microsoft.com/en-us/library/dd282459(v=xnagamestudio.30).aspx
SL: http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.marketplace.licenseinformation.istrial
W8: http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.store.licenseinformation.istrial
If you are trying to implement a trial function within your phone application, why not latch onto the libraries that MS provides?
MSDN Creating a trial application
MSDN Sample code for integrating a trial applicaiton
This is only available for WP7.1, WP7.1+ and WP8 (when written for WP7.1)
Microsoft recommends using the WP8 LicenseInformation class, to do
MSDN LicenseInformation class, WP8
Hope this helps!

Making a one-file visually customisable installer with patching/updating for XNA C# game

I'm making an XNA game and thought I'd look into making installers for it for when it's finished. It would be great to be able to distribute a single file that contains all the content and extracts all that to the install directory. Also I'd want to choose install directory and other options, and it would be nice to set the appearance of the installer to be in the style of my game.
Updates and patching are also something I'd want to set up. I have a website, so I'd like the game to check for updates from there.
I am familiar with ClickOnce, but I don't feel it is appropriate for the situation, and I've looked at Advanced Installer, Inno installer and wix.
I would love to make my own installer in c# winforms or similar, but I'm new to the area and don't know if this is possible or where to start. I trawled the net but could only find links to the third party stuff, so maybe makign my own is impossible? I wouldn't be bothered about not having start menu entries or registry values or whatever, just want to extract files somewhere then later check for updates before running.
Thanks for helping a newbie!
WiX is a good option for all the requirements you have listed above.
It would be great to be able to distribute a single file that contains all the content and extracts all that to the install directory
Standard WiX Setup project can get you going with this. There are default templates for basic installers
Also I'd want to choose install directory and other options
The default templates are all customisable, so you would be able to collect additional data easily, what you do with the data is up to you.
and it would be nice to set the appearance of the installer to be in the style of my game
WiX 3 onwards (I think) has a project type of 'Bootstrapper' which allows you to put your own UI infront of the installer, such as WPF or even XNA itself if you really wanted. You can specify and budle the requirements for the installer, eg .NET 4.0 if you are using a WPF front end.
I would love to make my own installer in c# winforms or similar
Also an option with WiX Bootstrapper.
Installers are more complicated than you might think, also, for updates and patches, keeping information around of versions of files and how to handle them gets complex fast. My advice would be spend time on your game and take advantage of the hard work of others who have thought long and hard about these problems.

Utiltizing SVN commands from a custom interface

I'm looking to automate the GUI available for TortoiseSVN. Rather than using the one provided and manually inputting the urls, I would like to save off various urls that I switch to on a daily basis and at the click of a button switch my working copy to one of my choosing.
TortioseSVN's 'TortioseProc.exe Switch' command does not support the /url parameter until a future release (1.8), this prevents me from being able to embed these easily within an anchor tag (supported by Tortiose) somewhere on our intranet.
Using the standard svn CLI thats compatible with the 1.7 build I'm able to perform switches and automatically close the command line, however I don't know of a way to perform these from a web interface and as I'm not familiar with desktop development I don't know of a plausible desktop solution.
I'm coming to you StackOverflow in hopes you know of a lightweight desktop alternative that wouldn't require much setup on the users side or better yet (web developer by trade) a web solution.
I want to clarify, I'm not looking for actual code but a library or language that will allow me to meet these requirements as I'm hoping to open this solution up to more developers at my workplace and would rather something that allows easy adoption (not a messy setup).
Thanks!
From a Windows/.NET application (whether it be ASP.NET within IIS, or a standalone application), your best way to go is SharpSVN.
Second place would be to write a wrapper around the command-line client.

.NET Software Update Manager

We are developing a frame application which supports many vendor devices. Devices are installed as a plug-ins within the frame application. But the device plug-ins are not part of control panel-Add Remove programs or MSI installers.
We download the device plugins as a zip file which contains XML data and few DLLs.
What are the recommended solution available in .NET so that whenever there is latest update in the devices, our system can detect and automatically update it through internet.
ClickOnce seems to be black box. We need to inform the customer that there are updates for the list of devices.
One example could be Ubuntu Update manager.
What do you mean ClickOnce seems to be the block box?
ClickOnce can update by asking the user or in the background without the user even knowing about it.
But since you are talking about plug-ins I suggest you take a look at the Managed Extensibility framework, this might be exactly what you need.
Allowing you to support plug-ins easiliy AND deploy updates by using simple zip files with some XML and DLL's as you said.
I think AppLife Update does the job well. Sure, you have to pay for it, but you have to pay a lot less than writing something equivalent from scratch would have cost.
Could it be that you are looking for a package manager?
While well-established in the Python/Ruby/Linux/... eco-system, .NET is bit behind.
There is a short overview (recent) article on InfoQ on package management in .NET.
And Ayende appears to enjoy Nu. It is the first result when searching for .net package management

Categories

Resources