diff --git a/build_setup.ps1 b/build_setup.ps1 new file mode 100644 index 0000000..bdd70c5 --- /dev/null +++ b/build_setup.ps1 @@ -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 +} diff --git a/hMarkdown.aip b/hMarkdown.aip new file mode 100644 index 0000000..6f6ad12 --- /dev/null +++ b/hMarkdown.aip @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +