2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									<Fragment>
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<?include ..\Includes.wxi?>
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<!--
							 
						 
					
						
							
								
									
										
										
										
											2024-04-03 14:27:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										Properties and related actions for specifying whether to install start menu/desktop shortcuts.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										-->
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<!-- These are the actual properties that get used in conditions to determine whether to
							 
						 
					
						
							
								
									
										
										
										
											2024-04-03 14:27:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												 install start menu shortcuts, they are initialized with a default value to install shortcuts.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												 They should not be set directly from the command line or registry, instead the CREATE* properties
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												 below should be set, then they will update these properties with their values only if set. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<Property Id="STARTMENUSHORTCUTS" Value="1" Secure="yes"></Property>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<Property Id="DESKTOPSHORTCUTS" Value="1" Secure="yes"></Property>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<Property Id="STARTUPSHORTCUTS" Value="1" Secure="yes"></Property>
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<!-- These properties get set from either the command line, bundle or registry value,
							 
						 
					
						
							
								
									
										
										
										
											2024-04-03 14:27:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												 if set they update the properties above with their value. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<Property Id="CREATESTARTMENUSHORTCUTS" Secure="yes">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<RegistrySearch Id="CreateStartMenuShortcutsSearch" Root="HKCR" Key="$(var.RegKeyRoot)" Name="STARTMENUSHORTCUTS" Type="raw" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</Property>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<Property Id="CREATEDESKTOPSHORTCUTS" Secure="yes">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<RegistrySearch Id="CreateDesktopShortcutsSearch" Root="HKCR" Key="$(var.RegKeyRoot)" Name="DESKTOPSHORTCUTS" Type="raw" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</Property>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<!-- Component that persists the property values to the registry so they are available during an upgrade/modify -->
							 
						 
					
						
							
								
									
										
											 
										
											
												Refact/msi more install options (#8949)
* refact: msi, more install options
Signed-off-by: fufesou <linlong1266@gmail.com>
* refact: msi, reg values on upgrade/modify
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: msi, silent repair/upgrade, RemoveInstallFolder()
Signed-off-by: fufesou <linlong1266@gmail.com>
* Options support both 1/0 and Y/N
Signed-off-by: fufesou <linlong1266@gmail.com>
* refact: msi, preprocess, open file with explicit encoding
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: msi, read previous options
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: mis, install folder, read previous option
Signed-off-by: fufesou <linlong1266@gmail.com>
* Comment on Control -> Checkbox
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: UI, checkbox options, read previous values
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: shortcuts options, init state
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: shortcuts, init state
Signed-off-by: fufesou <linlong1266@gmail.com>
* Better shortcuts property conditions
Signed-off-by: fufesou <linlong1266@gmail.com>
---------
Signed-off-by: fufesou <linlong1266@gmail.com>
											 
										 
										
											2024-08-05 17:49:48 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<DirectoryRef Id="INSTALLFOLDER_INNER">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<Component Id="Product.Registry.PersistedStartMenuShortcutProperties1" Guid="62F79BCF-3367-4ACF-950F-F8BCABACDDC0" Condition="STARTMENUSHORTCUTS = 1 OR STARTMENUSHORTCUTS = "Y" OR STARTMENUSHORTCUTS = "y"">
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												<RegistryKey Root="HKCR" Key="$(var.RegKeyRoot)">
							 
						 
					
						
							
								
									
										
											 
										
											
												Refact/msi more install options (#8949)
* refact: msi, more install options
Signed-off-by: fufesou <linlong1266@gmail.com>
* refact: msi, reg values on upgrade/modify
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: msi, silent repair/upgrade, RemoveInstallFolder()
Signed-off-by: fufesou <linlong1266@gmail.com>
* Options support both 1/0 and Y/N
Signed-off-by: fufesou <linlong1266@gmail.com>
* refact: msi, preprocess, open file with explicit encoding
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: msi, read previous options
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: mis, install folder, read previous option
Signed-off-by: fufesou <linlong1266@gmail.com>
* Comment on Control -> Checkbox
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: UI, checkbox options, read previous values
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: shortcuts options, init state
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: shortcuts, init state
Signed-off-by: fufesou <linlong1266@gmail.com>
* Better shortcuts property conditions
Signed-off-by: fufesou <linlong1266@gmail.com>
---------
Signed-off-by: fufesou <linlong1266@gmail.com>
											 
										 
										
											2024-08-05 17:49:48 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													<RegistryValue Type="string" Name="STARTMENUSHORTCUTS" Value="1" KeyPath="yes" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												</RegistryKey>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</Component>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<Component Id="Product.Registry.PersistedStartMenuShortcutProperties0" Guid="8EA2D5A8-6E5D-4BDD-9019-2099297FF519"  Condition="NOT (STARTMENUSHORTCUTS = 1 OR STARTMENUSHORTCUTS = "Y" OR STARTMENUSHORTCUTS = "y")">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												<RegistryKey Root="HKCR" Key="$(var.RegKeyRoot)">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													<RegistryValue Type="string" Name="STARTMENUSHORTCUTS" Value="0" KeyPath="yes" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												</RegistryKey>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</Component>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<Component Id="Product.Registry.PersistedDesktopShortcutProperties1" Guid="1BBAD054-6EC2-4362-BF1B-E8BDE988B597" Condition="DESKTOPSHORTCUTS = 1 OR DESKTOPSHORTCUTS = "Y" OR DESKTOPSHORTCUTS = "y"">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												<RegistryKey Root="HKCR" Key="$(var.RegKeyRoot)">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													<RegistryValue Type="string" Name="DESKTOPSHORTCUTS" Value="1" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												</RegistryKey>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</Component>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<Component Id="Product.Registry.PersistedDesktopShortcutProperties0" Guid="FA992614-D2E1-4795-9696-D45A5EF1B9C8" Condition="NOT (DESKTOPSHORTCUTS = 1 OR DESKTOPSHORTCUTS = "Y" OR DESKTOPSHORTCUTS = "y")">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												<RegistryKey Root="HKCR" Key="$(var.RegKeyRoot)">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													<RegistryValue Type="string" Name="DESKTOPSHORTCUTS" Value="0" />
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												</RegistryKey>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</Component>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</DirectoryRef>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<!-- If a property value has been passed via the command line (which includes when set from the bundle), the registry search will
							 
						 
					
						
							
								
									
										
										
										
											2024-04-03 14:27:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												 overwrite the command line value, these actions temporarily store the command line value before the registry search
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												 is performed so they can be restored after the registry search is complete -->
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<SetProperty Id="SavedStartMenuShortcutsCmdLineValue" Value="[CREATESTARTMENUSHORTCUTS]" Before="AppSearch" Sequence="first" Condition="CREATESTARTMENUSHORTCUTS" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<SetProperty Id="SavedDesktopShortcutsCmdLineValue" Value="[CREATEDESKTOPSHORTCUTS]" Before="AppSearch" Sequence="first" Condition="CREATEDESKTOPSHORTCUTS" />
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<!-- If a command line value was stored, restore it after the registry search has been performed -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<SetProperty Action="RestoreSavedStartMenuShortcutsValue" Id="CREATESTARTMENUSHORTCUTS" Value="[SavedStartMenuShortcutsCmdLineValue]" After="AppSearch" Sequence="first" Condition="SavedStartMenuShortcutsCmdLineValue" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<SetProperty Action="RestoreSavedDesktopShortcutsValue" Id="CREATEDESKTOPSHORTCUTS" Value="[SavedDesktopShortcutsCmdLineValue]" After="AppSearch" Sequence="first" Condition="SavedDesktopShortcutsCmdLineValue" />
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<!-- If a command line value or registry value was set, update the main properties with the value -->
							 
						 
					
						
							
								
									
										
											 
										
											
												Refact/msi more install options (#8949)
* refact: msi, more install options
Signed-off-by: fufesou <linlong1266@gmail.com>
* refact: msi, reg values on upgrade/modify
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: msi, silent repair/upgrade, RemoveInstallFolder()
Signed-off-by: fufesou <linlong1266@gmail.com>
* Options support both 1/0 and Y/N
Signed-off-by: fufesou <linlong1266@gmail.com>
* refact: msi, preprocess, open file with explicit encoding
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: msi, read previous options
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: mis, install folder, read previous option
Signed-off-by: fufesou <linlong1266@gmail.com>
* Comment on Control -> Checkbox
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: UI, checkbox options, read previous values
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: shortcuts options, init state
Signed-off-by: fufesou <linlong1266@gmail.com>
* fix: shortcuts, init state
Signed-off-by: fufesou <linlong1266@gmail.com>
* Better shortcuts property conditions
Signed-off-by: fufesou <linlong1266@gmail.com>
---------
Signed-off-by: fufesou <linlong1266@gmail.com>
											 
										 
										
											2024-08-05 17:49:48 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<SetProperty Id="STARTMENUSHORTCUTS" Value="" After="RestoreSavedStartMenuShortcutsValue" Sequence="first" Condition="CREATESTARTMENUSHORTCUTS AND NOT (CREATESTARTMENUSHORTCUTS = 1 OR CREATESTARTMENUSHORTCUTS = "Y" OR CREATESTARTMENUSHORTCUTS = "y")" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<SetProperty Id="DESKTOPSHORTCUTS" Value="" After="RestoreSavedDesktopShortcutsValue" Sequence="first" Condition="CREATEDESKTOPSHORTCUTS AND NOT (CREATEDESKTOPSHORTCUTS = 1 OR CREATEDESKTOPSHORTCUTS = "Y" OR CREATEDESKTOPSHORTCUTS = "y")" />
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-12 17:42:26 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									</Fragment>
							 
						 
					
						
							
								
									
										
										
										
											2024-04-02 18:10:09 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								</Wix>