forked from hesabix/arc
Harden Holoo-to-Hesabix document partition/mapping, sample E2E tooling, remove hardcoded SQL credentials from scripts, fix income AR account 10401, and publish Setup MSI 1.1.0. Co-authored-by: Cursor <cursoragent@cursor.com>
184 lines
17 KiB
XML
184 lines
17 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
<DOCUMENT Type="Advanced Installer" CreateVersion="23.1" version="23.1" Modules="simple" RootPath="." Language="en" Id="{EFD43CE5-D923-4101-87D4-7EF661E8E798}">
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
|
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
|
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_DOTNET_VERSION"/>
|
|
<ROW Property="AI_REQUIRED_DOTNET_DISPLAY" MultiBuildValue="DefaultBuild:4.6.1" ValueLocId="-"/>
|
|
<ROW Property="AI_REQUIRED_DOTNET_VERSION" MultiBuildValue="DefaultBuild:4.6.1" ValueLocId="-"/>
|
|
<ROW Property="ALLUSERS" Value="1"/>
|
|
<ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
|
|
<ROW Property="ARPPRODUCTICON" Value="icon.exe" Type="8"/>
|
|
<ROW Property="Manufacturer" Value="Hesabix"/>
|
|
<ROW Property="ProductCode" Value="1033:{AB5E1A00-E9C2-4770-8E2F-5496840C8A5B} " Type="16"/>
|
|
<ROW Property="ProductLanguage" Value="1033"/>
|
|
<ROW Property="ProductName" Value="Holoo2Hesabix"/>
|
|
<ROW Property="ProductVersion" Value="1.1.0" Options="32"/>
|
|
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
|
<ROW Property="UpgradeCode" Value="{0AB50DF3-E74A-4CCD-A2C9-AC2FC11E79BE}"/>
|
|
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
|
<ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT40" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT40Display" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT50" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT60" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
|
<ROW Property="WindowsTypeNT60Display" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
|
<ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1" DirectoryOptions="3"/>
|
|
<ROW Directory="DesktopFolder" Directory_Parent="TARGETDIR" DefaultDir="DESKTO~1|DesktopFolder" IsPseudoRoot="1"/>
|
|
<ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/>
|
|
<ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.SideBySideGuidComponent">
|
|
<ROW Component="APPDIR" Value="{0D80ECDA-2CFF-4499-A8FA-E476323FF82E}"/>
|
|
<ROW Component="ProductInformation" Value="{4659ABF1-C8EF-431D-A909-90AC4D2EBEEA}"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
|
<ROW Component="APPDIR" ComponentId="{0D80ECDA-2CFF-4499-A8FA-E476323FF82E}" Directory_="APPDIR" Attributes="0"/>
|
|
<ROW Component="Holoo2Hesabix.exe" ComponentId="{D02A0C64-B1A0-4FEF-A0D6-FF54286C4464}" Directory_="APPDIR" Attributes="0" KeyPath="Holoo2Hesabix.exe"/>
|
|
<ROW Component="Holoo2Hesabix.exe.config" ComponentId="{9A8675B9-24B7-4F28-8A4E-E0AA5C56D57B}" Directory_="APPDIR" Attributes="0" KeyPath="Holoo2Hesabix.exe.config" Type="0"/>
|
|
<ROW Component="Newtonsoft.Json.dll" ComponentId="{AB5F3F4F-A563-45D1-8493-4F10AF82D613}" Directory_="APPDIR" Attributes="0" KeyPath="Newtonsoft.Json.dll"/>
|
|
<ROW Component="ProductInformation" ComponentId="{4659ABF1-C8EF-431D-A909-90AC4D2EBEEA}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
|
|
<ROW Component="SHORTCUTDIR" ComponentId="{67A986B2-39D5-4181-B4E3-537C22C46AE6}" Directory_="SHORTCUTDIR" Attributes="0"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
|
|
<ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/>
|
|
<ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
|
|
<ROW File="Holoo2Hesabix.exe" Component_="Holoo2Hesabix.exe" FileName="HOLOO2~1.EXE|Holoo2Hesabix.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\bin\Release\Holoo2Hesabix.exe" SelfReg="false" DigSign="true"/>
|
|
<ROW File="Holoo2Hesabix.exe.config" Component_="Holoo2Hesabix.exe.config" FileName="HOLOO2~1.CON|Holoo2Hesabix.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\bin\Release\Holoo2Hesabix.exe.config" SelfReg="false"/>
|
|
<ROW File="Newtonsoft.Json.dll" Component_="Newtonsoft.Json.dll" FileName="NEWTON~1.DLL|Newtonsoft.Json.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\bin\Release\Newtonsoft.Json.dll" SelfReg="false"/>
|
|
<ROW File="icon.ico" Component_="Holoo2Hesabix.exe.config" FileName="icon.ico" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\bin\Release\icon.ico" SelfReg="false"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.BootstrapperUISequenceComponent">
|
|
<ROW Action="AI_DetectSoftware" Sequence="151"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
|
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="output" PackageFileName="Holoo2Hesabix-Setup" Languages="en" InstallationType="4" UseLargeSchema="true"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
|
<ROW Path="<AI_DICTS>ui.ail"/>
|
|
<ROW Path="<AI_DICTS>ui_en.ail"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
|
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
|
<ROW Fragment="FolderDlg.aip" Path="<AI_THEMES>classic\fragments\FolderDlg.aip"/>
|
|
<ROW Fragment="MaintenanceTypeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceTypeDlg.aip"/>
|
|
<ROW Fragment="MaintenanceWelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceWelcomeDlg.aip"/>
|
|
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
|
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
|
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
|
<ROW Fragment="Themes.aip" Path="<AI_FRAGS>Themes.aip"/>
|
|
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
|
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
|
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
|
<ROW Fragment="VerifyRepairDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRepairDlg.aip"/>
|
|
<ROW Fragment="WelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\WelcomeDlg.aip"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
|
|
<ROW Name="SoftwareDetector.dll" SourcePath="<AI_CUSTACTS>SoftwareDetector.dll"/>
|
|
<ROW Name="aicustact.dll" SourcePath="<AI_CUSTACTS>aicustact.dll"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
|
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
|
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="201"/>
|
|
<ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
|
<ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
|
|
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/>
|
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/>
|
|
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
|
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="201"/>
|
|
<ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
|
|
<ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
|
|
<ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/>
|
|
<ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
|
|
<ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="601"/>
|
|
<ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="1"/>
|
|
<ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="601"/>
|
|
<ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="1"/>
|
|
<ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="399" Options="1"/>
|
|
<ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="299" Options="1"/>
|
|
<ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/>
|
|
<ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/>
|
|
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
|
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
|
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
|
<ROW Directory_="SHORTCUTDIR" Component_="SHORTCUTDIR" ManualDelete="false"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
|
|
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
|
<ROW Action="AI_DetectSoftware" Type="257" Source="SoftwareDetector.dll" Target="OnDetectSoftware"/>
|
|
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
|
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
|
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
|
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
|
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
|
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
|
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
|
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
|
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
|
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/>
|
|
<ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
|
|
<ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
|
|
<ROW Feature_="MainFeature" Component_="APPDIR"/>
|
|
<ROW Feature_="MainFeature" Component_="ProductInformation"/>
|
|
<ROW Feature_="MainFeature" Component_="Holoo2Hesabix.exe"/>
|
|
<ROW Feature_="MainFeature" Component_="Holoo2Hesabix.exe.config"/>
|
|
<ROW Feature_="MainFeature" Component_="Newtonsoft.Json.dll"/>
|
|
<ROW Feature_="MainFeature" Component_="SHORTCUTDIR"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">
|
|
<ROW Name="icon.exe" SourcePath="..\icon.ico" Index="0"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
|
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
|
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
|
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/>
|
|
<ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1399"/>
|
|
<ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
|
|
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
|
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
|
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
|
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
|
<ROW Action="AI_ResolveKnownFolders" Sequence="53"/>
|
|
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
|
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
|
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
|
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
|
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
|
<ROW Condition="(VersionNT <> 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
|
|
<ROW Condition="(VersionNT <> 600)" Description="[ProductName] cannot be installed on [WindowsTypeNT60Display]." DescriptionLocId="AI.LaunchCondition.NoNT60" IsPredefined="true" Builds="DefaultBuild"/>
|
|
<ROW Condition="AI_DETECTED_DOTNET_VERSION >= AI_REQUIRED_DOTNET_VERSION" Description="[ProductName] cannot be installed on systems with .NET Framework version lower than [AI_REQUIRED_DOTNET_DISPLAY]." DescriptionLocId="AI.LaunchCondition.DotNET" IsPredefined="true" Builds="DefaultBuild"/>
|
|
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
|
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
|
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
|
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
|
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
|
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiShortsComponent">
|
|
<ROW Shortcut="Holoo2Hesabix" Directory_="DesktopFolder" Name="HOLOO2~1|Holoo2Hesabix" Component_="Holoo2Hesabix.exe" Target="[#Holoo2Hesabix.exe]" Description="Holoo to Hesabix data migration" Hotkey="0" Icon_="icon.exe" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>
|
|
<ROW Shortcut="Holoo2Hesabix_1" Directory_="SHORTCUTDIR" Name="HOLOO2~1|Holoo2Hesabix" Component_="Holoo2Hesabix.exe" Target="[#Holoo2Hesabix.exe]" Description="Holoo to Hesabix data migration" Hotkey="0" Icon_="icon.exe" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
|
<ATTRIBUTE name="UsedTheme" value="classic"/>
|
|
</COMPONENT>
|
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
|
|
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/>
|
|
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
|
|
</COMPONENT>
|
|
</DOCUMENT>
|