diff --git a/Installer/VirtualPrinter.WixSharpInstaller/Script.cs b/Installer/VirtualPrinter.WixSharpInstaller/Script.cs
index d8ce3bd..5a0147c 100644
--- a/Installer/VirtualPrinter.WixSharpInstaller/Script.cs
+++ b/Installer/VirtualPrinter.WixSharpInstaller/Script.cs
@@ -4,9 +4,10 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
-
+using System.Windows.Forms;
using JetBrains.Annotations;
-
+using Microsoft.Deployment.WindowsInstaller;
+using Microsoft.Win32;
using VirtualPrinter.Utils;
using WixSharp;
@@ -14,6 +15,7 @@ using WixSharp;
using Action = WixSharp.Action;
using File = WixSharp.File;
using Files = VirtualPrinter.Utils.Files;
+using Keys = VirtualPrinter.Utils.Keys;
using RegistryHive = WixSharp.RegistryHive;
namespace VirtualPrinter.WixSharpInstaller
@@ -72,9 +74,43 @@ namespace VirtualPrinter.WixSharpInstaller
InstallPrivileges = InstallPrivileges.elevated
};
+ project.BeforeInstall += ProjectOnBeforeInstall;
+
project.BuildMsi();
}
+ private static void ProjectOnBeforeInstall(SetupEventArgs e)
+ {
+ const string gsNotFound = "Ghostscript not found!\n" +
+ "Please install Ghostscript version 9.52 or higher.\n" +
+ "You can find the installer on the official website:\n" +
+ "https://www.ghostscript.com/download/gsdnld.html";
+
+ var registryView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
+
+ var gsKey = RegistryKey
+ .OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, registryView)
+ .OpenSubKey(@"SOFTWARE\GPL Ghostscript\9.52");
+
+ if (gsKey == null)
+ {
+ MessageBox.Show(gsNotFound);
+ e.Result = ActionResult.Failure;
+ return;
+ }
+
+ var gsAssembly = (string)gsKey.GetValue("GS_DLL");
+
+ if (System.IO.File.Exists(gsAssembly))
+ {
+ e.Result = ActionResult.Success;
+ return;
+ }
+
+ MessageBox.Show("gsNotFound");
+ e.Result = ActionResult.Failure;
+ }
+
[NotNull, ItemNotNull]
private static Dir[] CreateProjectDirs
(
diff --git a/Installer/VirtualPrinter.WixSharpInstaller/VirtualPrinter.WixSharpInstaller.csproj b/Installer/VirtualPrinter.WixSharpInstaller/VirtualPrinter.WixSharpInstaller.csproj
index 422a157..d63a317 100644
--- a/Installer/VirtualPrinter.WixSharpInstaller/VirtualPrinter.WixSharpInstaller.csproj
+++ b/Installer/VirtualPrinter.WixSharpInstaller/VirtualPrinter.WixSharpInstaller.csproj
@@ -56,6 +56,9 @@
+
+
+