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
Learn how to create your own Progressbar-like control, which exposes the same properties as a normal Progressbar, but with added visual appeal.
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.
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.
This is the 4th part of a series of articles about how to design DockingForms using a DockingManager written in C#.
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 VideosMore...
Latest CodeGuru Developer Columns
It's essential to know the differences in these libraries and use them correctly. This brief tutorial will guide you.
With facilities to search, copy, extract segments, and more, the array class can handle pretty much any task you need to perform with ease.
Learn about delegates, a type that represents a reference to physical methods with the same parameter list and return type.
If you have written solid code, you have accomplished one half of the objective. Solid code is the protagonist, or hero, of our story, but testing is the more sedate side kick that often saves the day after the hubris of the hero has almost certainly lead to calamity.