xenadmin/WixInstaller/XenCenter.wxs
Danilo Del Busso 23482a6be1
CA-380545: Do not use RemoveFolder for Desktop folder
It's meant to delete empty folders on uninstall but it's not applicable in this case, and caused issued if users don't have the correct rights.

Also rename the IDs to better match content

Signed-off-by: Danilo Del Busso <danilo.delbusso@cloud.com>
2023-07-25 11:32:43 +01:00

259 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) Cloud Software Group, Inc.
Redistribution and use in source and binary forms,
with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
-->
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<?include branding.wxi ?>
<Product Id="$(var.ProductCode)" Name="$(var.BrandConsole)" Language="$(env.WixLangId)" Version="$(var.ProductVersion)" Manufacturer="$(var.CompanyNameLegal)" UpgradeCode="$(var.UpgradeCode)">
<Package Languages="1033" Description="$(var.BrandConsole)" Comments="none." InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="XenCenter.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="XenServer" Name="$(var.BrandProduct)">
<Directory Id="INSTALLDIR" ShortName="$(var.BrandConsoleShort)" Name="$(var.BrandConsoleNoSpace)">
<Component Id="ReportViewer" Guid="$(var.ReportViewerGuid)">
<File Id="MicRepVwrCmnDLL" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\Microsoft.ReportViewer.Common.dll" />
<File Id="MicRepVwrPrcObjDLL" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\Microsoft.ReportViewer.ProcessingObjectModel.dll" />
<File Id="MicRepVwrWFDLL" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\Microsoft.ReportViewer.WinForms.dll" />
<File Id="HostHealthHistoryRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\host_health_history.rdlc" />
<File Id="PoolHealthRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\pool_health.rdlc" />
<File Id="opt_perf_histRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\optimization_performance_history.rdlc" />
<File Id="vmMovementHistoryRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\vm_movement_history.rdlc" />
<File Id="vmPerformanceHistoryRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\vm_performance_history.rdlc" />
<File Id="PoolHealthHistoryRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\pool_health_history.rdlc" />
<File Id="ReportConfigXML" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\reports.xml" />
<File Id="ResourceReportRDLC" Source="$(env.RepoRoot)\XenAdmin\ReportViewer\resource_report.rdlc" />
</Component>
<Component Id="MainExecutable" Guid="$(var.MainExeGuid)">
<!-- XenCenter EXE -->
<File Id="XenCenterEXE" Source="$(env.RepoRoot)\XenAdmin\bin\Release\$(var.BrandConsoleNoSpace).exe" KeyPath="yes" />
<!-- other EXEs -->
<File Id="XeEXE" Source="$(env.RepoRoot)\xe\bin\Release\xe.exe" />
<File Id="xva_verifyEXE" Source="$(env.RepoRoot)\xva_verify\bin\Release\xva_verify.exe" />
<!-- config -->
<File Id="XenCenterCONFIG" Source="$(env.RepoRoot)\XenAdmin\bin\Release\$(var.BrandConsoleNoSpace).exe.config" />
<!-- DLLs -->
<File Id="CommandLibDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\CommandLib.dll" />
<File Id="CookComputingDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\CookComputing.XmlRpcV2.dll" />
<File Id="NewtonsoftJsonDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Newtonsoft.Json.CH.dll" />
<File Id="log4netDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\log4net.dll" />
<File Id="SharpZipLibDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\ICSharpCode.SharpZipLib.dll" />
<File Id="MSTSCLibDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\MSTSCLib.dll" />
<File Id="XenCenterLibDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\CoreUtilsLib.dll" />
<File Id="XenModelDLL" Source="$(env.RepoRoot)\XenAdmin\bin\Release\XenModel.dll" />
<File Id="DiscUtils" Source="$(env.RepoRoot)\XenAdmin\bin\Release\DiscUtils.dll" />
<File Id="XenOvf" Source="$(env.RepoRoot)\XenAdmin\bin\Release\XenOvf.dll" />
<!-- Icons -->
<File Id="XenCenterIcon" Source="$(env.RepoRoot)\Branding\Images\AppIcon.ico" />
<File Id="XvaIcon" Source="$(env.RepoRoot)\Branding\Images\file_vm.ico" />
<File Id="XkbIcon" Source="$(env.RepoRoot)\Branding\Images\file_backup.ico" />
<!-- Define file extensions -->
<ProgId Id="XenCenter.xva" Description="!(loc.XVA_File)" Icon="XvaIcon">
<Extension Id="xva" ContentType="application/xva">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="import &quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="XenCenter.ovf" Description="!(loc.OVF_File)" Icon="XvaIcon">
<Extension Id="ovf" ContentType="application/ovf">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="import &quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="XenCenter.ova" Description="!(loc.OVA_File)" Icon="XvaIcon">
<Extension Id="ova" ContentType="application/ova">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="import &quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="XenCenter.vhd" Description="!(loc.VHD_File)" Icon="XvaIcon">
<Extension Id="vhd" ContentType="application/vhd">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="import &quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="XenCenter.vmdk" Description="!(loc.VMDK_File)" Icon="XvaIcon">
<Extension Id="vmdk" ContentType="application/vmdk">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="import &quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="XenCenter.$(var.FileExtBackup)" Description="$(var.BrandProduct) !(loc.XenServer_Backup_File)" Icon="XkbIcon">
<Extension Id="$(var.FileExtBackup)" ContentType="application/$(var.FileExtBackup)">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="restore &quot;%1&quot;" />
</Extension>
</ProgId>
<ProgId Id="XenCenter.$(var.FileExtSearch)" Description="$(var.BrandConsole) !(loc.XenCenter_Saved_Search)" Icon="XenCenterIcon">
<Extension Id="$(var.FileExtSearch)" ContentType="application/$(var.FileExtSearch)">
<Verb Id="open" Command="!(loc.Open)" TargetFile="XenCenterEXE" Argument="search &quot;%1&quot;" />
</Extension>
</ProgId>
</Component>
<Component Id="UpdateFiles" Guid="$(var.UpdateFilesGuid)">
<File Id="hotfixStockholm" Source="$(env.RepoRoot)\Branding\Hotfixes\RPU005.iso" />
</Component>
<Directory Id="EXTERNALTOOLS" ShortName="External" Name="External Tools">
<Component Id="ExternalToolsComponent" Guid="$(var.ExtToolsGuid)">
<File Id="XENSERVERLINUXFIXUP" Source="$(env.RepoRoot)\_scratch\External Tools\xenserver-linuxfixup-disk.iso" />
</Component>
</Directory>
<Directory Id="SCHEMAS" Name="Schemas">
<Component Id="SchemasFilesComponent" Guid="$(var.SchemasFilesGuid)">
<File Id="CIMOSXML" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\CIM_OperatingSystem.xml" />
<File Id="CIMRASDXML" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\CIM_ResourceAllocationSettingData.xml" />
<File Id="CIMRASDXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\CIM_ResourceAllocationSettingData.xsd" />
<File Id="CIMVSSDXML" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\CIM_VirtualSystemSettingData.xml" />
<File Id="CIMVSSDXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\CIM_VirtualSystemSettingData.xsd" />
<File Id="COMMONXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\common.xsd" />
<File Id="DSP8023XSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\DSP8023.xsd" />
<File Id="DSP8027XSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\DSP8027.xsd" />
<File Id="SECEXTXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\secext-1.0.xsd" />
<File Id="WSSUTILXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\wss-utility-1.0.xsd" />
<File Id="XENCXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\xenc-schema.xsd" />
<File Id="XMLXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\xml.xsd" />
<File Id="XMLDSIGXSD" Source="$(env.RepoRoot)\XenAdmin\bin\Release\Schemas\xmldsig-core-schema.xsd" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="$(var.BrandProduct)" />
</Directory>
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationDesktopShortcut" Guid="63b44222-b5e8-4ab1-8f68-baed79abbf36">
<Condition>INSTALLSHORTCUT</Condition>
<Shortcut Id="DesktopXenCenter"
Name="$(var.BrandConsole)"
Target="[INSTALLDIR]$(var.BrandConsoleNoSpace).exe"
WorkingDirectory="INSTALLDIR"
/>
<RegistryValue Root="HKCU" Key="Software\$(var.BrandProduct)\$(var.BrandConsoleNoSpace)" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Directory>
</Directory>
<DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntries" Guid="$(var.RegEntriesGuid)">
<RegistryKey Root="HKMU" Key="Software\$(var.BrandProduct)\$(var.BrandConsoleNoSpace)">
<RegistryValue Type="string" Name="InstallDir" Value="[INSTALLDIR]" />
<?if "$(var.HiddenFeatures)" != ""?>
<RegistryValue Type="string" Name="HiddenFeatures" Value="$(var.HiddenFeatures)" />
<?endif?>
<?if "$(var.AdditionalFeatures)" != ""?>
<RegistryValue Type="string" Name="AdditionalFeatures" Value="$(var.AdditionalFeatures)" />
<?endif?>
</RegistryKey>
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="$(var.AppShortcutGuid)">
<Shortcut Id="StartmenuXenCenter" ShortName="$(var.BrandConsoleShort)" Name="$(var.BrandConsole)" Target="[INSTALLDIR]$(var.BrandConsoleNoSpace).exe" WorkingDirectory="INSTALLDIR" Icon="XenCenterICO" />
<RemoveFolder Id="ApplicationProgramsFolder" On="both" />
<RegistryValue Root="HKCU" Key="Software\$(var.BrandProduct)\$(var.BrandConsoleNoSpace)" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
<Feature Id="MainProgram" Title="$(var.BrandConsole)" Description="$(var.BrandConsole)" Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR" AllowAdvertise="no" InstallDefault="local" Absent="disallow" >
<ComponentRef Id="MainExecutable" />
<ComponentRef Id="UpdateFiles" />
<ComponentRef Id="ReportViewer" />
<ComponentRef Id="SchemasFilesComponent" />
<ComponentRef Id="ExternalToolsComponent" />
<ComponentRef Id="RegistryEntries" />
<ComponentRef Id="ApplicationShortcut" />
<ComponentRef Id="ApplicationDesktopShortcut" />
</Feature>
<UIRef Id="$(var.BrandInstallerUI)" />
<UIRef Id="WixUI_ErrorProgressText" />
<Property Id="Install_All" Value="0" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
<Property Id="ARPPRODUCTICON" Value="XenCenterICO" />
<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" DowngradeErrorMessage="!(loc.ErrorNewerProduct)" Schedule="afterInstallInitialize"/>
<PropertyRef Id='WIXNETFX4RELEASEINSTALLED'/>
<Condition Message="!(loc.Required_For_Installation)">
<![CDATA[Installed OR (WIXNETFX4RELEASEINSTALLED >= "#528040")]]>
</Condition>
<Property Id="PERMACHINEINSTALL">
<RegistrySearch Id="InstallRegistry" Type="raw" Root="HKLM" Key="Software\$(var.BrandProduct)\$(var.BrandConsoleNoSpace)" Name="InstallDir" />
</Property>
<Property Id="REINSTALLMODE" Value="amus" />
<Property Id="INSTALLSHORTCUT" Value="0"/>
<CustomAction Id="ClearAllUsers" Property="ALLUSERS" Value="" />
<CustomAction Id="SetAllUsers" Property="ALLUSERS" Value="1" />
<InstallExecuteSequence>
<AppSearch Sequence="50" />
<FindRelatedProducts Before="LaunchConditions" />
<LaunchConditions Sequence="100" />
<ValidateProductID Sequence="700" />
<CostInitialize Sequence="800" />
<FileCost Sequence="900" />
<CostFinalize Sequence="1000" />
<MigrateFeatureStates Sequence="1200" />
<InstallValidate Sequence="1400" />
<InstallInitialize Sequence="1500" />
<ProcessComponents Sequence="1600" />
<UnpublishFeatures Sequence="1800" />
<RemoveRegistryValues Sequence="2600" />
<RemoveShortcuts Sequence="3200" />
<RemoveFiles Sequence="3500" />
<InstallFiles Sequence="4000" />
<CreateShortcuts Sequence="4500" />
<WriteRegistryValues Sequence="5000" />
<RegisterUser Sequence="6000" />
<RegisterProduct Sequence="6100" />
<PublishFeatures Sequence="6300" />
<PublishProduct Sequence="6400" />
<InstallFinalize Sequence="6600" />
</InstallExecuteSequence>
<InstallUISequence>
<Custom Action="SetAllUsers" Before="FindRelatedProducts">NOT Installed AND PERMACHINEINSTALL</Custom>
<FindRelatedProducts Before="LaunchConditions" />
<Custom Action="ClearAllUsers" After="FindRelatedProducts">NOT Installed AND PERMACHINEINSTALL</Custom>
<ExecuteAction Sequence="1102" />
</InstallUISequence>
<UI>
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 AND NOT (WixUI_InstallMode="Remove") AND XS_WixUIRMPressedOk="0"
</Publish>
</UI>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="!(loc.XenCenter_Launch) $(var.BrandConsole)" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<Property Id="WixShellExecTarget" Value="[#XenCenterEXE]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes"
/>
<Icon Id="XenCenterICO" SourceFile="$(env.RepoRoot)\Branding\Images\AppIcon.ico" />
</Product>
</Wix>