How to Create Your Own WPF Configuration Wizard
When creating a WPF setup, you need to solve the .Net download issue - if the client doesn't have .Net, your setup won't work.
Once you decide this, your setup will need to do a few things:
- request administrator rights to access specific locations of files and registry.
- expand all required files to% ProgramFiles% \
- create the correct entry in HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall (if your application is explicitly compiled for x86, you need to do this in Wow6432Node on 64-bit machines)
- create a shortcut in all programs \
- do additional steps like registering COM, merging files, etc. depending on what functionality your application provides.
Most of them are provided free of charge by Windows Installer (MSI). You should really use something like WiX to create a regular installer, although it won't be as fun as WPF.
If you really want to be fancy, you can create a WPF UI that is powered by the MSI engine, but the overhead is probably not worth it.
Refresh . Here are some links that might help if you are still choosing to create a WPF interface customization:
source to share
Or:
a deployment project in visual studio
the deployment projects were the longest. microsoft seems to hit clickonce the most on .net wix gives you maximum control over msi
source to share
I've never tried it, but I know that in ASP.NET you can add WizardSteps to a MultiView.
In WPF, I created a tab control by setting the height of the tab to zero:
<TabControl x:Name="tbcWizard" Background="Transparent" BorderBrush="Transparent">
<TabItem Visibility="Hidden" Height="0">
...
Use DockPanel or Grid to keep next / previous buttons at the bottom. Next / Previous Keys will be mapped to CommandBindings for NavigationCommands.NextPage or PreviousPage, and the CanExecute status of these commands will be determined by the index of the tab control.
if (tbcWizard.SelectedIndex> 0) // can return if (tbcWizard.SelectedIndex <= tbcWizard.Items.Count) // can execute forwards
Change the selected control index when buttons are pressed.
source to share
I personally use WiX 3.0 ( http://wix.sourceforge.net/ ) for all my WPF or other .NET based applications.
source to share