Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/src/addins/WindowsPlatform/JumpList.cs141
-rw-r--r--main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.dllbin0 -> 542720 bytes
-rw-r--r--main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.pdbbin0 -> 1336832 bytes
-rw-r--r--main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.dllbin0 -> 105984 bytes
-rw-r--r--main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.pdbbin0 -> 243200 bytes
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml4
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform.csproj9
-rw-r--r--main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs19
-rw-r--r--setup/WixSetup/Product.wxs85
-rw-r--r--setup/WixSetup/build.js10
11 files changed, 269 insertions, 6 deletions
diff --git a/main/src/addins/WindowsPlatform/JumpList.cs b/main/src/addins/WindowsPlatform/JumpList.cs
new file mode 100644
index 0000000000..4d68112f42
--- /dev/null
+++ b/main/src/addins/WindowsPlatform/JumpList.cs
@@ -0,0 +1,141 @@
+//
+// JumpList.cs
+//
+// Author:
+// Steven Schermerhorn <stevens+monoaddins@ischyrus.com>
+//
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Timers;
+using Microsoft.Win32;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Ide;
+using MonoDevelop.Ide.Desktop;
+using Taskbar = Microsoft.WindowsAPICodePack.Taskbar;
+
+namespace MonoDevelop.Platform
+{
+ public class JumpList : CommandHandler
+ {
+ private IList<string> supportedExtensions;
+ private RecentFiles recentFiles;
+ private Timer updateTimer;
+
+ protected override void Run ()
+ {
+ bool isWindows7 = Taskbar.TaskbarManager.IsPlatformSupported;
+ if (!isWindows7) {
+ return;
+ }
+
+ bool areFileExtensionsRegistered = this.Initialize ();
+
+ if (!areFileExtensionsRegistered) {
+ return;
+ }
+
+ this.updateTimer = new Timer (1000);
+ this.updateTimer.Elapsed += this.OnUpdateTimerEllapsed;
+ this.updateTimer.AutoReset = false;
+
+ this.recentFiles = DesktopService.RecentFiles;
+ this.recentFiles.Changed += this.OnRecentFilesChanged;
+ this.UpdateJumpList ();
+ }
+
+ private void OnRecentFilesChanged (object sender, EventArgs args)
+ {
+ // This event fires several times for a single change. Rather than performing the update
+ // several times we will restart the timer which has a 1 second delay on it.
+ // While this means the update won't make it to the JumpList immediately it is significantly
+ // better for performance.
+ this.updateTimer.Stop ();
+ this.updateTimer.Start ();
+ }
+
+ private void OnUpdateTimerEllapsed (object sender, EventArgs args)
+ {
+ this.UpdateJumpList ();
+ }
+
+ private void UpdateJumpList ()
+ {
+ Taskbar.JumpList jumplist = Taskbar.JumpList.CreateJumpList ();
+ jumplist.KnownCategoryToDisplay = Taskbar.JumpListKnownCategoryType.Neither;
+
+ Taskbar.JumpListCustomCategory recentProjectsCategory = new Taskbar.JumpListCustomCategory ("Recent Solutions");
+ Taskbar.JumpListCustomCategory recentFilesCategory = new Taskbar.JumpListCustomCategory ("Recent Files");
+
+ jumplist.AddCustomCategories (recentProjectsCategory, recentFilesCategory);
+ jumplist.KnownCategoryOrdinalPosition = 0;
+
+ foreach (RecentFile recentProject in recentFiles.GetProjects ()) {
+ // Windows is picky about files that are added to the jumplist. Only files that MonoDevelop
+ // has been registered as supported in the registry can be added.
+ bool isSupportedFileExtension = this.supportedExtensions.Contains (Path.GetExtension (recentProject.FileName));
+ if (isSupportedFileExtension) {
+ recentProjectsCategory.AddJumpListItems (new Taskbar.JumpListItem (recentProject.FileName));
+ }
+ }
+
+ foreach (RecentFile recentFile in recentFiles.GetFiles ()) {
+ if (this.supportedExtensions.Contains (Path.GetExtension (recentFile.FileName)))
+ recentFilesCategory.AddJumpListItems (new Taskbar.JumpListItem (recentFile.FileName));
+ }
+
+ jumplist.Refresh ();
+ }
+
+ private bool Initialize ()
+ {
+ this.supportedExtensions = new List<string> ();
+
+ // Determine the correct value for /HKCR/MonoDevelop[version]/shell/Open/Command
+ ProcessModule monoDevelopAssembly = Process.GetCurrentProcess ().MainModule;
+ string exePath = monoDevelopAssembly.FileName;
+ string executeString = exePath + " %1";
+ string version = monoDevelopAssembly.FileVersionInfo.ProductVersion;
+ string progId = "MonoDevelop" + version;
+ string appId = progId;
+
+ Taskbar.TaskbarManager.Instance.ApplicationId = progId;
+
+ RegistryKey progIdKey = Registry.ClassesRoot.OpenSubKey (progId + @"\shell\Open\Command", false);
+ if (progIdKey == null) {
+ return false;
+ }
+
+ object path = progIdKey.GetValue (String.Empty);
+ bool isProgIdRegistered = String.Equals (executeString, path as string, StringComparison.OrdinalIgnoreCase);
+ if (!isProgIdRegistered) {
+ return false;
+ }
+
+ string[] subkeyNames = Registry.ClassesRoot.GetSubKeyNames ();
+ foreach (string subkey in subkeyNames) {
+ if (subkey[0] != '.') {
+ continue;
+ }
+
+ RegistryKey openWithKey = Registry.ClassesRoot.OpenSubKey (Path.Combine (subkey, "OpenWithProgIds"));
+ if (openWithKey == null) {
+ continue;
+ }
+
+ string progIdValue = openWithKey.GetValue (progId, null) as string;
+ if (progIdValue == null) {
+ continue;
+ }
+
+ this.supportedExtensions.Add (subkey);
+ }
+
+ bool atLeastOneFileTypeRegistered = this.supportedExtensions.Count > 0;
+ return atLeastOneFileTypeRegistered;
+ }
+ }
+}
+
diff --git a/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.dll b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.dll
new file mode 100644
index 0000000000..4542663e1e
--- /dev/null
+++ b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.dll
Binary files differ
diff --git a/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.pdb b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.pdb
new file mode 100644
index 0000000000..2af8f3989e
--- /dev/null
+++ b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.Shell.pdb
Binary files differ
diff --git a/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.dll b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.dll
new file mode 100644
index 0000000000..ac86949212
--- /dev/null
+++ b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.dll
Binary files differ
diff --git a/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.pdb b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.pdb
new file mode 100644
index 0000000000..aef485379e
--- /dev/null
+++ b/main/src/addins/WindowsPlatform/Microsoft.WindowsAPICodePack.pdb
Binary files differ
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml b/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml
index a2198583dc..e69a25683a 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml
@@ -24,6 +24,10 @@
<Extension path = "/MonoDevelop/Ide/Updater">
<UpdateInfo file="..\bin\updateinfo" />
</Extension>
+
+ <Extension path = "/MonoDevelop/Ide/InitCompleteHandlers">
+ <Class class="MonoDevelop.Platform.JumpList" />
+ </Extension>
<!-- <Extension path = "/MonoDevelop/Components/DialogHandlers">
<Class class = "MonoDevelop.Platform.SelectFileDialogHandler"/>
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform.csproj b/main/src/addins/WindowsPlatform/WindowsPlatform.csproj
index 347b7e954f..d07b6693e3 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform.csproj
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform.csproj
@@ -38,6 +38,14 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
+ <Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>Microsoft.WindowsAPICodePack.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
@@ -76,6 +84,7 @@
<SubType>Form</SubType>
</Compile>
<Compile Include="RecentFiles.cs" />
+ <Compile Include="JumpList.cs" />
</ItemGroup>
<ItemGroup>
<None Include="ChangeLog" />
diff --git a/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml b/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml
index b33100a1e0..b2f19c366e 100644
--- a/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml
+++ b/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml
@@ -59,6 +59,13 @@
</ExtensionNode>
</ExtensionPoint>
+ <ExtensionPoint path = "/MonoDevelop/Ide/InitCompleteHandlers" name = "Post inialization handlers">
+ <Description>Commands to be automatically executed when the IDE finishes initalization.</Description>
+ <ExtensionNode name="Class">
+ <Description>A subclass of MonoDevelop.Components.Commands.CommandHandler</Description>
+ </ExtensionNode>
+ </ExtensionPoint>
+
<ExtensionPoint path = "/MonoDevelop/Ide/KeyBindingSchemes" name = "Key binding schemes">
<Description>Key binding schemes.</Description>
<ExtensionNodeSet id="MonoDevelop.Components.Commands.KeyBindingScheme"/>
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs
index 41acfd09b5..bd812d2128 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs
@@ -41,6 +41,7 @@ using System.Linq;
using Mono.Unix;
using Mono.Addins;
+using MonoDevelop.Components.Commands;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide.Gui;
@@ -131,6 +132,7 @@ namespace MonoDevelop.Ide
options.NoLogo = true;
IProgressMonitor monitor;
+
if (options.NoLogo) {
monitor = new MonoDevelop.Core.ProgressMonitoring.ConsoleProgressMonitor ();
} else {
@@ -259,6 +261,9 @@ namespace MonoDevelop.Ide
Thread.CurrentThread.Name = "GUI Thread";
Counters.Initialization.Trace ("Running IdeApp");
Counters.Initialization.EndTiming ();
+
+ AddinManager.AddExtensionNodeHandler("/MonoDevelop/Ide/InitCompleteHandlers", OnExtensionChanged);
+
IdeApp.Run ();
// unloading services
@@ -276,6 +281,20 @@ namespace MonoDevelop.Ide
get { return initialized; }
}
+ static void OnExtensionChanged (object s, ExtensionNodeEventArgs args)
+ {
+ if (args.Change == ExtensionChange.Add) {
+ try {
+ if (typeof(CommandHandler).IsInstanceOfType (args.ExtensionObject))
+ typeof(CommandHandler).GetMethod ("Run", System.Reflection.BindingFlags.NonPublic|System.Reflection.BindingFlags.Instance, null, Type.EmptyTypes, null).Invoke (args.ExtensionObject, null);
+ else
+ LoggingService.LogError ("Type " + args.ExtensionObject.GetType () + " must be a subclass of MonoDevelop.Components.Commands.CommandHandler");
+ } catch (Exception ex) {
+ LoggingService.LogError (ex.ToString ());
+ }
+ }
+ }
+
void OnAddinError (object s, AddinErrorEventArgs args)
{
if (errorsList != null)
diff --git a/setup/WixSetup/Product.wxs b/setup/WixSetup/Product.wxs
index 4da158e5a5..c643c99ae6 100644
--- a/setup/WixSetup/Product.wxs
+++ b/setup/WixSetup/Product.wxs
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?define ProductShortName = "MonoDevelop" ?>
-<?define ProductVersion = "2.4.9.1" ?>
-<?define ProductVersionText = "2.4.9.1" ?>
+<?define ProductVersion = "2.6.0" ?>
+<?define ProductVersionText = "2.6" ?>
+<?define HKCRNAME = "MonoDevelop2.6.0.0" ?>
<?define Manufacturer = "Novell" ?>
<?define UpgradeCode = "9134F74C-E7E3-471A-9833-C86FB45CD38E" ?>
@@ -582,6 +583,86 @@
<File Name="MonoDevelop.AssemblyBrowser.dll" Source="$(var.BuildRoot)\AddIns\MonoDevelop.AssemblyBrowser.dll" />
<File Name="MonoDevelop.SourceEditor2.dll" Source="$(var.BuildRoot)\AddIns\MonoDevelop.SourceEditor2.dll" />
<File Name="WindowsPlatform.dll" Source="$(var.BuildRoot)\AddIns\WindowsPlatform.dll" />
+ <File Name="Microsoft.WindowsAPICodePack.dll" Source="$(var.BuildRoot)\AddIns\Microsoft.WindowsAPICodePack.dll" />
+ <File Name="Microsoft.WindowsAPICodePack.Shell.dll" Source="$(var.BuildRoot)\AddIns\Microsoft.WindowsAPICodePack.Shell.dll" />
+
+ <RegistryKey Root='HKCR' Key='$(var.HKCRNAME)' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='AppUserModelID' Value='$(var.HKCRNAME)' />
+ <RegistryValue Type='string' Name='CurVer' Value='$(var.ProductVersion)' />
+ <RegistryValue Type='string' Name='DefaultIcon' Value='@shell32.dll,-47' />
+ <RegistryValue Type='string' Name='FriendlyTypeName' Value='@shell32.dll,-8975' />
+ </RegistryKey>
+
+ <RegistryKey Root='HKCR' Key='$(var.HKCRNAME)\shell\Open\Command' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Value='[INSTALLLOCATION]bin\monodevelop.exe %1' />
+ </RegistryKey>
+
+ <RegistryKey Root='HKCR' Key='.asax\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.ascx\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.ashx\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.asmx\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.asp\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.aspx\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.c\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.cc\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.cs\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.csproj\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.cxx\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.h\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.hpp\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.htm\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.html\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.hxx\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.master\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.mdp\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.sln\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.vb\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.vbproj\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
+ <RegistryKey Root='HKCR' Key='.xml\OpenWithProgids' Action='createAndRemoveOnUninstall'>
+ <RegistryValue Type='string' Name='$(var.HKCRNAME)' Value='' />
+ </RegistryKey>
</Component>
</Directory>
diff --git a/setup/WixSetup/build.js b/setup/WixSetup/build.js
index 34ce882977..922f273a30 100644
--- a/setup/WixSetup/build.js
+++ b/setup/WixSetup/build.js
@@ -1,15 +1,16 @@
var MAJOR_VERSION = 2;
-var MINOR_VERSION = 4;
-var POINT_VERSION = 9;
-var BUILD_VERSION = 1;
+var MINOR_VERSION = 6;
+var POINT_VERSION = 0;
+var BUILD_VERSION = 0;
var sh = new ActiveXObject("WScript.Shell");
var fs = new ActiveXObject("Scripting.FileSystemObject");
-var MONO_LIBS = "C:\\Program Files\\MonoLibraries\\2.6\\lib\\mono\\2.0";
+var MONO_LIBS = "C:\\Program Files (x86)\\MonoLibraries\\2.6\\lib\\mono\\2.0";
var MD_DIR = "..\\..";
var MD_EXTRAS_DIR = "..\\..\\extras";
var PRODUCT_VERSION = "" + MAJOR_VERSION + "." + MINOR_VERSION + "." + POINT_VERSION + (BUILD_VERSION != 0 ? "." + BUILD_VERSION : "");
var PRODUCT_VERSION_TEXT = "" + MAJOR_VERSION + "." + MINOR_VERSION + (POINT_VERSION != 0 || BUILD_VERSION != 0 ? "." + POINT_VERSION : "") + (BUILD_VERSION != 0 ? "." + BUILD_VERSION : "");
+var HKCRNAME = "MonoDevelop" + MAJOR_VERSION + "." + MINOR_VERSION + "." + POINT_VERSION + "." + BUILD_VERSION;
var MONO_PRODUCT_VERSION = "" + MAJOR_VERSION + format (MINOR_VERSION, 2) + format (POINT_VERSION, 2) + format (BUILD_VERSION, 3);
// Build the main solution and the windows-specific add-ins
@@ -49,6 +50,7 @@ fs.CopyFolder ("ExtraFiles\\*", MD_DIR + "\\main\\build\\bin\\");
regexreplace ("Product.wxs", /ProductVersionText = ".*?"/g, "ProductVersionText = \"" + PRODUCT_VERSION_TEXT + "\"");
regexreplace ("Product.wxs", /ProductVersion = ".*?"/g, "ProductVersion = \"" + PRODUCT_VERSION + "\"");
+regexreplace ("Product.wxs", /HKCRNAME = ".*?"/g, "HKCRNAME = \"" + HKCRNAME + "\"");
// Create the updateinfo file