Reputation: 1234
Hello I am new to wpf app development and searching for deployment technologies to deploy and update my WPF application but I was unable to find anything that clears my requirements.
Requirements are:
1) Set default path to program files or Allow clients to choose install path location
2) Update the wpf application through silent mode or provide an update button on my wpf app.
Limitation of deployment technologies what I tried:
ClickOnce
: Client doesn't have option to choose installation path
Windows Installer
: It doesn't support Updater for wpf app.
Squirrel
: Here also I was unable to choose the installation location.
There above are the conclusions that I got from googling for resources to achieve my requirements for deploying the wpf app.
Are there any technologies that supports my requirements for deploying and updating WPF app(these may be wrong please mention if any)
Upvotes: 1
Views: 3393
Reputation: 27756
The WiX toolset is a solid option for deployment, it's mature, it's widely used and as a bonus it's free.
It has a learning curve, but in the long term it pays off in my opinion. Check out the official tutorial or this one which is especially tailored for WPF app.
Regarding your requirements:
1) Set default path to program files or Allow clients to choose install path location
WiX provides a variety of standard UI. If all you need is customizing the install dir, you could go with "WixUI_InstallDir". Check this page for more options.
2) Update the wpf application through silent mode or provide an update button on my wpf app.
If your app is small to medium size (say < 100MiB), deploy the updates as MajorUpgrade. A MajorUpgrade always contains the full installer, which will automatically uninstall the previous version, then install the new version. Of course you can do this in silent mode:
msiexec.exe -qn -i YourInstaller.msi
Alternatively you may use the API (MsiSetInternalUI, MsiInstallProductW) for that:
MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
UINT result = MsiInstallProductW(L"YourInstaller.msi", L"");
To update really big applications (like Visual Studio) you would create a patch, but for small to medium size apps it's not worth the hassle.
Upvotes: 3