Compare commits

1 Commits

Author SHA1 Message Date
92ad0fd725 Add Advanced Installer configuration and automation script 2026-07-06 12:39:13 +03:00
2 changed files with 276 additions and 0 deletions

80
build_setup.ps1 Normal file
View File

@@ -0,0 +1,80 @@
# build_setup.ps1
# Script to automate creation and building of hMarkdown Installer using Advanced Installer 22.5
$aiPath = "C:\Program Files (x86)\Caphyon\Advanced Installer 22.5\bin\x86\AdvancedInstaller.com"
if (-not (Test-Path $aiPath)) {
Write-Error "Advanced Installer not found at $aiPath"
exit 1
}
$projectDir = "E:\ai\C#\hMarkdown"
$aipPath = Join-Path $projectDir "hMarkdown.aip"
$releaseBin = Join-Path $projectDir "hMarkdown\bin\Release\net48"
$exePath = Join-Path $releaseBin "hMarkdown.exe"
# 1. Build the project in Release mode if not built
Write-Host "Building project in Release mode..."
dotnet build -c Release
if ($LASTEXITCODE -ne 0) {
Write-Error "Failed to build hMarkdown project."
exit 1
}
# 2. Get product version from executable version
$version = (Get-Item $exePath).VersionInfo.ProductVersion
if ($null -eq $version -or $version -eq "") {
$version = "1.0.1"
}
# Trim version to standard MSI format (major.minor.build, max 3 parts for Windows Installer product version)
if ($version -match "^\d+\.\d+\.\d+") {
$version = $Matches[0]
}
Write-Host "Product Version detected: $version"
# 3. Create a new Advanced Installer Project
Write-Host "Creating new Advanced Installer project..."
if (Test-Path $aipPath) {
Remove-Item $aipPath
}
& $aiPath /newproject $aipPath -type professional -lang tr
if ($LASTEXITCODE -ne 0) {
Write-Error "Failed to create new Advanced Installer project."
exit 1
}
# 4. Generate .aic command file
$aicPath = Join-Path $projectDir "setup_commands.aic"
$aicContent = @(
";aic",
"SetVersion $version",
"SetProperty ProductName=""hMarkdown""",
"SetProperty Manufacturer=""hOLOlu""",
"AddFile APPDIR `"$exePath`"",
"AddFile APPDIR `"$exePath.config`"",
"AddFile APPDIR `"$exePath.manifest`"",
"AddFolder APPDIR\icons `"$releaseBin\icons`"",
"NewShortcut -name `"hMarkdown`" -dir ProgramMenuFolder -target APPDIR\hMarkdown.exe -icon `"$projectDir\hMarkdown.ico`"",
"NewShortcut -name `"hMarkdown`" -dir DesktopFolder -target APPDIR\hMarkdown.exe -icon `"$projectDir\hMarkdown.ico`"",
"AddFileAssociation `"hOLOlu.hMarkdown.md`" -desc `"Markdown Document`" -ext md -cmd APPDIR\hMarkdown.exe",
"Save",
"Build"
)
# Write command file with ANSI encoding (Windows-1254/UTF-8 signature sometimes confuses command line parsers)
$aicContent | Out-File -FilePath $aicPath -Encoding ascii
# 5. Execute the commands and build
Write-Host "Executing installer setup commands and building..."
& $aiPath /execute $aipPath $aicPath
if ($LASTEXITCODE -eq 0) {
Write-Host "Installer built successfully!"
Write-Host "You can find your setup files in the 'hMarkdown-SetupFiles' folder."
} else {
Write-Error "Failed to build installer."
}
# Cleanup temporary command file
if (Test-Path $aicPath) {
Remove-Item $aicPath
}

196
hMarkdown.aip Normal file
View File

@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENT Type="Advanced Installer" CreateVersion="22.5" version="22.5" Modules="professional" RootPath="." Language="tr" Id="{A123E831-31A5-49AE-AAEE-412A338C0B51}">
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
<ROW Property="ALLUSERS" Value="1"/>
<ROW Property="ARPCOMMENTS" Value="Bu yükleyici veritabanı, [|ProductName] yüklemek için gerekli mantığı ve verileri içeriyor." ValueLocId="*"/>
<ROW Property="Manufacturer" Value="hOLOlu"/>
<ROW Property="ProductCode" Value="1055:{C0350B0A-4B2D-4564-83C9-B92D37B3B6D0} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="hMarkdown"/>
<ROW Property="ProductVersion" Value="0.2026.7" Options="32"/>
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
<ROW Property="UpgradeCode" Value="{75B33698-E72C-4D49-808D-404C0DA75071}"/>
<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="ProgramMenuFolder" Directory_Parent="TARGETDIR" DefaultDir="PROGRA~1|ProgramMenuFolder" IsPseudoRoot="1"/>
<ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
<ROW Directory="icons_1_Dir" Directory_Parent="icons_Dir" DefaultDir="icons" DirectoryOptions="3"/>
<ROW Directory="icons_Dir" Directory_Parent="APPDIR" DefaultDir="icons" DirectoryOptions="3"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.SideBySideGuidComponent">
<ROW Component="APPDIR" Value="{67AED005-63D2-467D-AFA0-6534D8B5C388}"/>
<ROW Component="ProductInformation" Value="{5E037F0D-D953-4628-875A-80CC99C862A8}"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
<ROW Component="APPDIR" ComponentId="{67AED005-63D2-467D-AFA0-6534D8B5C388}" Directory_="APPDIR" Attributes="0"/>
<ROW Component="ProductInformation" ComponentId="{5E037F0D-D953-4628-875A-80CC99C862A8}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
<ROW Component="bold.png" ComponentId="{6970C9B8-2907-47A1-8884-F22020199073}" Directory_="icons_1_Dir" Attributes="0" KeyPath="bold.png" Type="0"/>
<ROW Component="hMarkdown.exe" ComponentId="{C3E8A6DE-EBC3-4BF2-B960-68D7DCBE32F2}" Directory_="APPDIR" Attributes="0" KeyPath="hMarkdown.exe"/>
<ROW Component="hMarkdown.exe.config" ComponentId="{D80E78AF-1CBA-4E70-BB71-D6CDDF11236C}" Directory_="APPDIR" Attributes="0" KeyPath="hMarkdown.exe.config" Type="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="hMarkdown.exe" Component_="hMarkdown.exe" FileName="HMARKD~1.EXE|hMarkdown.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\hMarkdown.exe" SelfReg="false" DigSign="true"/>
<ROW File="hMarkdown.exe.config" Component_="hMarkdown.exe.config" FileName="HMARKD~1.CON|hMarkdown.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\hMarkdown.exe.config" SelfReg="false"/>
<ROW File="hMarkdown.exe.manifest" Component_="hMarkdown.exe.config" FileName="HMARKD~1.MAN|hMarkdown.exe.manifest" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\hMarkdown.exe.manifest" SelfReg="false"/>
<ROW File="bold.png" Component_="bold.png" FileName="bold.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\bold.png" SelfReg="false"/>
<ROW File="document.png" Component_="bold.png" FileName="document.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\document.png" SelfReg="false"/>
<ROW File="edit.png" Component_="bold.png" FileName="edit.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\edit.png" SelfReg="false"/>
<ROW File="eraser.png" Component_="bold.png" FileName="eraser.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\eraser.png" SelfReg="false"/>
<ROW File="help.png" Component_="bold.png" FileName="help.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\help.png" SelfReg="false"/>
<ROW File="indent.png" Component_="bold.png" FileName="indent.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\indent.png" SelfReg="false"/>
<ROW File="italic.png" Component_="bold.png" FileName="italic.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\italic.png" SelfReg="false"/>
<ROW File="link.png" Component_="bold.png" FileName="link.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\link.png" SelfReg="false"/>
<ROW File="list.png" Component_="bold.png" FileName="list.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\list.png" SelfReg="false"/>
<ROW File="openedfolder.png" Component_="bold.png" FileName="OPENED~1.PNG|opened-folder.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\opened-folder.png" SelfReg="false"/>
<ROW File="save.png" Component_="bold.png" FileName="save.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\save.png" SelfReg="false"/>
<ROW File="strikethrough.png" Component_="bold.png" FileName="STRIKE~1.PNG|strikethrough.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\strikethrough.png" SelfReg="false"/>
<ROW File="table.png" Component_="bold.png" FileName="table.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\table.png" SelfReg="false"/>
<ROW File="visible.png" Component_="bold.png" FileName="visible.png" Version="65535.65535.65535.65535" Attributes="0" SourcePath="hMarkdown\bin\Release\net48\icons\visible.png" SelfReg="false"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent">
<ROW BootstrOptKey="GlobalOptions" DownloadFolder="[AppDataFolder][|Manufacturer]\[|ProductName]\prerequisites" Options="2"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" Languages="tr" InstallationType="4" UseLargeSchema="true"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
<ROW Path="&lt;AI_DICTS&gt;ui_tr.ail"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
<ROW Fragment="CommonUI.aip" Path="&lt;AI_FRAGS&gt;CommonUI.aip"/>
<ROW Fragment="FolderDlg.aip" Path="&lt;AI_THEMES&gt;classic\fragments\FolderDlg.aip"/>
<ROW Fragment="MaintenanceTypeDlg.aip" Path="&lt;AI_THEMES&gt;classic\fragments\MaintenanceTypeDlg.aip"/>
<ROW Fragment="MaintenanceWelcomeDlg.aip" Path="&lt;AI_THEMES&gt;classic\fragments\MaintenanceWelcomeDlg.aip"/>
<ROW Fragment="SequenceDialogs.aip" Path="&lt;AI_THEMES&gt;classic\fragments\SequenceDialogs.aip"/>
<ROW Fragment="Sequences.aip" Path="&lt;AI_FRAGS&gt;Sequences.aip"/>
<ROW Fragment="StaticUIStrings.aip" Path="&lt;AI_FRAGS&gt;StaticUIStrings.aip"/>
<ROW Fragment="Themes.aip" Path="&lt;AI_FRAGS&gt;Themes.aip"/>
<ROW Fragment="UI.aip" Path="&lt;AI_THEMES&gt;classic\fragments\UI.aip"/>
<ROW Fragment="Validation.aip" Path="&lt;AI_FRAGS&gt;Validation.aip"/>
<ROW Fragment="VerifyRemoveDlg.aip" Path="&lt;AI_THEMES&gt;classic\fragments\VerifyRemoveDlg.aip"/>
<ROW Fragment="VerifyRepairDlg.aip" Path="&lt;AI_THEMES&gt;classic\fragments\VerifyRepairDlg.aip"/>
<ROW Fragment="WelcomeDlg.aip" Path="&lt;AI_THEMES&gt;classic\fragments\WelcomeDlg.aip"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
<ROW Name="aicustact.dll" SourcePath="&lt;AI_CUSTACTS&gt;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=&quot;Remove&quot;" Ordering="601"/>
<ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode=&quot;Remove&quot;" Ordering="1"/>
<ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode=&quot;Repair&quot;" Ordering="601"/>
<ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode=&quot;Repair&quot;" Ordering="1"/>
<ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode=&quot;Repair&quot;" Ordering="399" Options="1"/>
<ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode=&quot;Remove&quot;" 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"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
<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.MsiExtComponent">
<ROW Extension="md" Component_="hMarkdown.exe" ProgId_="hOLOlu.hMarkdown.md" Feature_="MainFeature" Options="32"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
<ROW Feature_="MainFeature" Component_="APPDIR"/>
<ROW Feature_="MainFeature" Component_="ProductInformation"/>
<ROW Feature_="MainFeature" Component_="hMarkdown.exe"/>
<ROW Feature_="MainFeature" Component_="hMarkdown.exe.config"/>
<ROW Feature_="MainFeature" Component_="bold.png"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">
<ROW Name="hMarkdown.exe" SourcePath="hMarkdown.ico" Index="0"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel &lt;&gt; 5)" Sequence="210"/>
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=&quot;&quot;" Sequence="749"/>
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/>
<ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE=&quot;No&quot; AND (Not Installed)" Sequence="1399"/>
<ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=&quot;&quot;" Sequence="749"/>
<ROW Action="AI_ResolveKnownFolders" Sequence="53"/>
<ROW Action="AI_DpiContentScale" Sequence="52"/>
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
<ROW Condition="((VersionNT &lt;&gt; 501) AND (VersionNT &lt;&gt; 502))" Description="[ProductName], [WindowsTypeNT5XDisplay] üzerine yüklenemez." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
<ROW Condition="(VersionNT &lt;&gt; 400)" Description="[ProductName], [WindowsTypeNT40Display] üzerine yüklenemez." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
<ROW Condition="(VersionNT &lt;&gt; 500)" Description="[ProductName], [WindowsTypeNT50Display] üzerine yüklenemez." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
<ROW Condition="(VersionNT &lt;&gt; 600)" Description="[ProductName], [WindowsTypeNT60Display] üzerine yüklenemez." DescriptionLocId="AI.LaunchCondition.NoNT60" IsPredefined="true" Builds="DefaultBuild"/>
<ROW Condition="VersionNT" Description="[ProductName], [WindowsType9XDisplay] üzerine yüklenemez." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiProgIdComponent">
<ROW ProgId="hOLOlu.hMarkdown.md" Description="Markdown Document" Flags="0"/>
</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="hMarkdown" Directory_="ProgramMenuFolder" Name="HMARKD~1|hMarkdown" Component_="hMarkdown.exe" Target="[#hMarkdown.exe]" Hotkey="0" Icon_="hMarkdown.exe" IconIndex="0" ShowCmd="1"/>
<ROW Shortcut="hMarkdown_1" Directory_="DesktopFolder" Name="HMARKD~1|hMarkdown" Component_="hMarkdown.exe" Target="[#hMarkdown.exe]" Hotkey="0" Icon_="hMarkdown.exe" IconIndex="0" ShowCmd="1"/>
</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>
<COMPONENT cid="caphyon.advinst.msicomp.MsiVerbComponent">
<ROW Extension_="md" Component_="hMarkdown.exe" Verb="open" Sequence="1" Command="&amp;Aç" Argument="&quot;%1&quot;"/>
</COMPONENT>
</DOCUMENT>