From a5b184d54e8837b817b35ac12b4b94cbb03d1dd7 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 31 Mar 2026 10:24:37 -0500 Subject: [PATCH 1/4] Download and copy DLLs during build Args.dll (needed for GeckofxHtmlToPdf) was not being copied during the build after .NET modernizations. Also include harvests in patch logs to make this type of omission easier to troubleshoot in the future. Also fix whitespace and build instructions in Setup-InstallerBuild.ps1 --- .github/workflows/patch-installer-cd.yml | 2 ++ Build/Agent/Setup-InstallerBuild.ps1 | 13 +++++++------ Build/PackageRestore.targets | 1 + Build/Src/NativeBuild/NativeBuild.csproj | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/patch-installer-cd.yml b/.github/workflows/patch-installer-cd.yml index 50f6af2400..65666279cd 100644 --- a/.github/workflows/patch-installer-cd.yml +++ b/.github/workflows/patch-installer-cd.yml @@ -293,3 +293,5 @@ jobs: path: | ./*.log ./*.binlog + ./PatchableInstaller/CreateUpdatePatch/Master/AppHarvest.wxs + ./PatchableInstaller/CreateUpdatePatch/Update/AppHarvest.wxs diff --git a/Build/Agent/Setup-InstallerBuild.ps1 b/Build/Agent/Setup-InstallerBuild.ps1 index bb4b203c76..32f6e4ae92 100644 --- a/Build/Agent/Setup-InstallerBuild.ps1 +++ b/Build/Agent/Setup-InstallerBuild.ps1 @@ -320,21 +320,22 @@ if ($issues.Count -eq 0) { } } + # REVIEW (Hasso) 2026.03: why are we encouraging direct msbuild calls over $(fwrt)/Build.ps1 calls? Write-Host "`nTo build installers:" -ForegroundColor White if ($vsDevEnvActive) { # VS Developer environment is active, show simple commands Write-Host "" Write-Host " # Restore packages" -ForegroundColor Gray - Write-Host " msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug /p:Platform=x64" -ForegroundColor Cyan + Write-Host " msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Release /p:Platform=x64" -ForegroundColor Cyan Write-Host "" Write-Host " # Build base installer" -ForegroundColor Gray - Write-Host " msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release /m /v:n" -ForegroundColor Cyan + Write-Host " msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Release /p:Platform=x64 /p:config=release /m /v:n" -ForegroundColor Cyan Write-Host "" if ($SetupPatch) { Write-Host " # Build patch installer" -ForegroundColor Gray - Write-Host " msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release /m /v:n" -ForegroundColor Cyan + Write-Host " msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Release /p:Platform=x64 /p:config=release /m /v:n" -ForegroundColor Cyan Write-Host "" } } else { @@ -344,15 +345,15 @@ if ($issues.Count -eq 0) { Write-Host " # Option 2: Use these one-liner commands from any PowerShell:" -ForegroundColor Gray Write-Host "" Write-Host " # Restore packages" -ForegroundColor Gray - Write-Host ' cmd /c "call ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"" -arch=amd64 >nul && msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug /p:Platform=x64"' -ForegroundColor Cyan + Write-Host ' cmd /c "call ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"" -arch=amd64 >nul && msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Release /p:Platform=x64"' -ForegroundColor Cyan Write-Host "" Write-Host " # Build base installer" -ForegroundColor Gray - Write-Host ' cmd /c "call ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"" -arch=amd64 >nul && msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release /m /v:n"' -ForegroundColor Cyan + Write-Host ' cmd /c "call ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"" -arch=amd64 >nul && msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Release /p:Platform=x64 /p:config=release /m /v:n"' -ForegroundColor Cyan Write-Host "" if ($SetupPatch) { Write-Host " # Build patch installer" -ForegroundColor Gray - Write-Host ' cmd /c "call ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"" -arch=amd64 >nul && msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release /m /v:n"' -ForegroundColor Cyan + Write-Host ' cmd /c "call ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"" -arch=amd64 >nul && msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Release /p:Platform=x64 /p:config=release /m /v:n"' -ForegroundColor Cyan Write-Host "" } } diff --git a/Build/PackageRestore.targets b/Build/PackageRestore.targets index 8beaa21f3d..b2ca6c7425 100644 --- a/Build/PackageRestore.targets +++ b/Build/PackageRestore.targets @@ -563,6 +563,7 @@ MSBuild's automatic assembly resolution copies them to the output directory. SIL.BuildTasks is now a PackageReference in FwBuildTasks.csproj. --> + all - - + + From 266971dc0e066b6cecc1fcf0f0af91e79a6ad31a Mon Sep 17 00:00:00 2001 From: Hasso Date: Wed, 18 Mar 2026 15:27:18 -0500 Subject: [PATCH 2/4] Miscellaneous cleanup * Fix a garbled comment * Remove redundant -BuildTests flag (implied by -RunTests) * Ignore test residue --- .github/workflows/base-installer-cd.yml | 2 +- .github/workflows/patch-installer-cd.yml | 2 +- .gitignore | 1 + build.ps1 | 5 +++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/base-installer-cd.yml b/.github/workflows/base-installer-cd.yml index 709be6dc09..f752cc326d 100644 --- a/.github/workflows/base-installer-cd.yml +++ b/.github/workflows/base-installer-cd.yml @@ -156,7 +156,7 @@ jobs: id: build_and_test shell: powershell run: | - .\build.ps1 -BuildInstaller -Configuration Release -Verbosity detailed -BuildTests -RunTests -TestFilter 'TestCategory!=DesktopRequired' -MsBuildArgs @("/bl") | Tee-Object -FilePath build.log + .\build.ps1 -BuildInstaller -Configuration Release -Verbosity detailed -RunTests -TestFilter 'TestCategory!=DesktopRequired' -MsBuildArgs @("/bl") | Tee-Object -FilePath build.log - name: Scan Build Output shell: powershell diff --git a/.github/workflows/patch-installer-cd.yml b/.github/workflows/patch-installer-cd.yml index 65666279cd..9d65493ddf 100644 --- a/.github/workflows/patch-installer-cd.yml +++ b/.github/workflows/patch-installer-cd.yml @@ -225,7 +225,7 @@ jobs: shell: powershell run: | Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\AppContext" - .\build.ps1 -BuildPatch -Configuration Release -Verbosity detailed -BuildTests -RunTests -TestFilter 'TestCategory!=DesktopRequired' -MsBuildArgs @("/bl") | Tee-Object -FilePath build.log + .\build.ps1 -BuildPatch -Configuration Release -Verbosity detailed -RunTests -TestFilter 'TestCategory!=DesktopRequired' -MsBuildArgs @("/bl") | Tee-Object -FilePath build.log - name: Scan Build Output shell: powershell diff --git a/.gitignore b/.gitignore index 5ed27ca330..47476587d9 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ _user.mak.lnx *.usertasks *.resources *.bak +*.fwdata.lock *.swp *.pyc *.log diff --git a/build.ps1 b/build.ps1 index 795e3a06d3..b639e3f379 100644 --- a/build.ps1 +++ b/build.ps1 @@ -197,7 +197,8 @@ if ($Configuration -eq 'Release' -and -not $isGitHubActions) { } } -# ===========ed Module +# ============================================================================= +# Import FwBuildHelpers Module (for building build tasks) # ============================================================================= $helpersPath = Join-Path $PSScriptRoot "Build/Agent/FwBuildHelpers.psm1" @@ -610,7 +611,7 @@ try { Invoke-MSBuild ` -Arguments (@('Build/InstallerBuild.proj', "/t:Build$BaseOrPatch", '/p:config=release', "/p:InstallerToolset=$InstallerToolset", $installerCleanArg) + ` $InstallerMsBuildArgs) ` - -Description '$BaseOrPatch Build' ` + -Description "$BaseOrPatch Build" ` -LogPath $LogFile ` -TailLines $TailLines From f1d10ab22bdd4dded7e1701a393daf02c264f061 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 31 Mar 2026 17:13:37 -0500 Subject: [PATCH 3/4] Don't check for existence prematurely Of course downloaded files don't exist when the targets file containing downloadDLLs is loaded. --- Build/PackageRestore.targets | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Build/PackageRestore.targets b/Build/PackageRestore.targets index b2ca6c7425..1881e0073b 100644 --- a/Build/PackageRestore.targets +++ b/Build/PackageRestore.targets @@ -317,10 +317,7 @@ SIL.Machine.Morphology.HermitCrab.dll are now provided by NuGet PackageReference. --> - + @@ -451,6 +448,7 @@ /> + - Date: Wed, 1 Apr 2026 08:40:43 -0500 Subject: [PATCH 4/4] Revert "Download and copy DLLs during build" CopyDlls was already being called by some other mysterious process. This reverts the title change of commit df33819b5bd28cfb5844ae17deae946ff79aa220. --- Build/Src/NativeBuild/NativeBuild.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Build/Src/NativeBuild/NativeBuild.csproj b/Build/Src/NativeBuild/NativeBuild.csproj index 9087d8ba27..5ace008eea 100644 --- a/Build/Src/NativeBuild/NativeBuild.csproj +++ b/Build/Src/NativeBuild/NativeBuild.csproj @@ -67,8 +67,8 @@ all - - + +