If you look into "TaskDialog.cs", you will find that TastDialog's constructor includes the following lines:
// Throw PlatformNotSupportedException if the user is not running Vista or beyond
CoreHelpers.ThrowIfNotVista();
If you only include a reference to the Windows API Code Pack assembly, you will be fine. But using a feature which is not present on the OS currently running your application will throw an exception. To check if a feature is safe to call (i.e. supported on the current OS) most classes include a static IsPlatformSupported
property.
So you could check TaskDialog.IsPlatformSupported
first and call MessageBox.Show()
instead if your OS doesn't support TaskDialogs.