Windows installer has its own way to display installer user interface which is far different from other technologies. MSI supports few controls compared to .Net or other platform. Though it is not very difficult, still it is hard job to develop sophisticated installation package with good user interface, even after using well known installer software. NvnInstaller.MsiDotNet api makes this job easier.
Latest Component Development Articles
Creating a C# Gradient Progressbar Component
Learn how to create your own Progressbar-like control, which exposes the same properties as a normal Progressbar, but with added visual appeal.
Creating a DockablePanel-Controlmanager Using C#, Part 6
Learn how to create more advanced docking features, such as docking to the upper right corner or having some panels docked at the bottom of an MDI Form collected together in a TabControl. Each of the different parts include the full source code (up to that point), as well as a retrospective short explanation about the different topics covered already.
Creating a DockablePanel-Controlmanager Using C#, Part 5
Learn how to size a docked Panel and how to undock it again as well as which actions are needed to prepare the more advanced docking actions.
Creating a DockablePanel-Controlmanager Using C#, Part 4
This is the 4th part of a series of articles about how to design DockingForms using a DockingManager written in C#.
Creating a Dockable Panel-Controlmanager Using C#, Part 2
Learn how to get a borderless Form to move around on the screen by capturing it with the mouse and dragging it, and to be able to resize the form, the same way as a normal sizeable Form can be sized by dragging its edges.
Latest Developer Videos
More...Latest CodeGuru Developer Columns

Control Statements and Basic Loops in C++/CLI
Become more proficient on the usage of statements to control the flow of execution through a C++/CLI application.

Processing Things in C# with the Process Class
Explore new ways to run processes under Windows. Some might even surprise you.

Switching Input Languages Dynamically with Visual Basic
You can change your input language dynamically. Make it easier for those who speak other languages to use your software.
Maker Project: Creating a Garage Door Opener
Have you ever wanted to control your garage door from your smartphone? Here is your chance. Get your hands dirty with an Arduino Garage Door Controller.