Skip to content

Commit 4007bfc

Browse files
committed
Finish plan + remove x64 parameters
1 parent 93000bc commit 4007bfc

14 files changed

Lines changed: 99 additions & 70 deletions

.github/workflows/CI.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
id: managed_build
2828
shell: powershell
2929
run: |
30-
.\build.ps1 -Configuration Debug -Platform x64 -BuildTests
30+
.\build.ps1 -Configuration Debug -BuildTests
3131
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
3232
3333
- name: Run managed tests

.serena/project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ initial_prompt: |
9393
Key build facts:
9494
- Uses MSBuild Traversal SDK via FieldWorks.proj (21 ordered phases, 110+ projects)
9595
- Native C++ (Phase 2) must build before managed code (Phases 3+)
96-
- Build command: .\build.ps1 or msbuild FieldWorks.proj /p:Configuration=Debug /p:Platform=x64 /m
96+
- Build command: .\build.ps1 or msbuild FieldWorks.proj /p:Configuration=Debug /m
9797
- Check .github/instructions/*.instructions.md for coding guidelines (managed, native, testing, etc.)
9898
- Per-folder AGENTS.md files describe component contracts and dependencies
9999
# project_name: Intentionally left out so that the folder name will be used and worktrees will not conflict

.vscode/tasks.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@
216216
"kind": "build",
217217
"isDefault": true
218218
},
219-
"detail": "Build FieldWorks (auto-detects worktree)",
219+
"detail": "Build FieldWorks (package-backed by default; use explicit local LCM tasks for source mode)",
220220
"options": {
221221
"shell": {
222222
"executable": "powershell.exe",
@@ -332,7 +332,7 @@
332332
"kind": "test",
333333
"isDefault": true
334334
},
335-
"detail": "Run all tests (auto-detects worktree). See specs/007-test-modernization-vstest/IGNORED_TESTS.md for the tracked skip/ignore inventory.",
335+
"detail": "Run all tests. See specs/007-test-modernization-vstest/IGNORED_TESTS.md for the tracked skip/ignore inventory.",
336336
"options": {
337337
"shell": {
338338
"executable": "powershell.exe",
@@ -567,9 +567,9 @@
567567
"problemMatcher": []
568568
},
569569
{
570-
"label": "Installer Check: Bundle (Debug, x64)",
570+
"label": "Installer Check: Bundle (Debug)",
571571
"type": "shell",
572-
"command": "./scripts/Agent/Invoke-InstallerCheck.ps1 -InstallerType Bundle -Configuration Debug -Platform x64",
572+
"command": "./scripts/Agent/Invoke-InstallerCheck.ps1 -InstallerType Bundle -Configuration Debug",
573573
"detail": "Run snapshot -> install bundle -> snapshot -> diff (writes evidence under Output/InstallerEvidence/<RunId>)",
574574
"options": {
575575
"shell": {

Build/Agent/Setup-InstallerBuild.ps1

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -326,15 +326,15 @@ if ($issues.Count -eq 0) {
326326
# VS Developer environment is active, show simple commands
327327
Write-Host ""
328328
Write-Host " # Restore packages" -ForegroundColor Gray
329-
Write-Host " msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug /p:Platform=x64" -ForegroundColor Cyan
329+
Write-Host " msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug" -ForegroundColor Cyan
330330
Write-Host ""
331331
Write-Host " # Build base installer" -ForegroundColor Gray
332-
Write-Host " msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release /m /v:n" -ForegroundColor Cyan
332+
Write-Host " msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Debug /p:config=release /m /v:n" -ForegroundColor Cyan
333333
Write-Host ""
334334

335335
if ($SetupPatch) {
336336
Write-Host " # Build patch installer" -ForegroundColor Gray
337-
Write-Host " msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release /m /v:n" -ForegroundColor Cyan
337+
Write-Host " msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Debug /p:config=release /m /v:n" -ForegroundColor Cyan
338338
Write-Host ""
339339
}
340340
} else {
@@ -344,15 +344,15 @@ if ($issues.Count -eq 0) {
344344
Write-Host " # Option 2: Use these one-liner commands from any PowerShell:" -ForegroundColor Gray
345345
Write-Host ""
346346
Write-Host " # Restore packages" -ForegroundColor Gray
347-
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
347+
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"' -ForegroundColor Cyan
348348
Write-Host ""
349349
Write-Host " # Build base installer" -ForegroundColor Gray
350-
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
350+
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:config=release /m /v:n"' -ForegroundColor Cyan
351351
Write-Host ""
352352

353353
if ($SetupPatch) {
354354
Write-Host " # Build patch installer" -ForegroundColor Gray
355-
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
355+
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:config=release /m /v:n"' -ForegroundColor Cyan
356356
Write-Host ""
357357
}
358358
}

Build/Agent/validate-test-exclusions.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ try {
2626
# Run MSBuild and check for CS0436
2727
$BuildLog = "$RepoRoot/Output/test-exclusions/build.log"
2828
Write-Host "Running MSBuild..."
29-
$BuildArgs = @("FieldWorks.proj", "/m", "/p:Configuration=Debug", "/p:Platform=x64", "/v:minimal", "/nologo", "/fl", "/flp:LogFile=$BuildLog;Verbosity=Normal")
29+
$BuildArgs = @("FieldWorks.proj", "/m", "/p:Configuration=Debug", "/v:minimal", "/nologo", "/fl", "/flp:LogFile=$BuildLog;Verbosity=Normal")
3030

3131
& msbuild $BuildArgs
3232
if ($LASTEXITCODE -ne 0) {

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<Project>
22
<PropertyGroup>
33
<_IsNestedLcmProject Condition="$([System.String]::Copy('$(MSBuildProjectFullPath)').Contains('\\Localizations\\LCM\\'))">true</_IsNestedLcmProject>
4+
<ManagePackageVersionsCentrally Condition="'$(_IsNestedLcmProject)'=='true'">false</ManagePackageVersionsCentrally>
45
<ManagePackageVersionsCentrally Condition="'$(_IsNestedLcmProject)'!='true'">true</ManagePackageVersionsCentrally>
56
<!--
67
Transitive Pinning: When a package is declared here but only consumed

Docs/64bit-regfree-migration.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ A) Move to64-bit only
4242

4343
3) Solution + CI
4444
- Update `FieldWorks.sln` to remove Win32 platforms and keep `x64` (Debug/Release). If other solutions exist, do the same.
45-
- Update CI/build scripts to call: `msbuild FieldWorks.sln /m /p:Configuration=Debug /p:Platform=x64`.
45+
- Update CI/build scripts to call: `build.ps1` or `msbuild FieldWorks.sln /m /p:Configuration=Debug`.
4646
- Remove any32-bit specific paths or tools (e.g., SysWOW64 regsvr32) from build/targets.
4747

4848
B) Registration‑free COM (no regsvr32)
@@ -133,7 +133,7 @@ Appendix: key references in repo
133133
- COM interop usage sites: `Src/Common/ViewsInterfaces/Views.cs`, `Src/Common/FwUtils/DebugProcs.cs`.
134134

135135
Validation path (first pass)
136-
- Build all (x64): `msbuild FieldWorks.sln /m /p:Configuration=Debug /p:Platform=x64`.
136+
- Build all: `msbuild FieldWorks.sln /m /p:Configuration=Debug`.
137137
- Confirm `FieldWorks.exe.manifest` is generated and contains `<file name="Views.dll">` with `comClass` entries and interfaces. **✅ VERIFIED**
138138
- From a machine with no FieldWorks registrations, launch `FieldWorks.exe` → expect no class-not-registered exceptions. **✅ VERIFIED**
139139

@@ -143,7 +143,7 @@ Validation path (first pass)
143143
- `Directory.Build.props` enforces `<PlatformTarget>x64</PlatformTarget>`
144144
- `FieldWorks.sln` Win32 configurations removed
145145
- Native VCXPROJs x86 configurations removed
146-
- CI enforces `/p:Platform=x64` by invoking `msbuild Build/FieldWorks.proj`
146+
- CI enforces the x64-only default by invoking `build.ps1`
147147

148148
### Phase 2: Manifest wiring (✅ COMPLETE)
149149
- `Build/RegFree.targets` generates manifests with COM class/typelib entries

Docs/installer-build-guide.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,22 @@ git clone https://github.com/sillsdev/liblcm.git Localizations/LCM
5858
### Full Build (Recommended)
5959

6060
```powershell
61-
# Open VS Developer Command Prompt (x64) or run:
61+
# Open VS Developer Command Prompt or run:
6262
# & "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\Launch-VsDevShell.ps1" -Arch amd64
6363
6464
# Restore packages
65-
msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug /p:Platform=x64
65+
msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug
6666
67-
# Build base installer (x64 only)
68-
msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Release /p:Platform=x64 /p:config=release /m /v:n
67+
# Build base installer
68+
msbuild Build/InstallerBuild.proj /t:BuildInstaller /p:Configuration=Release /p:config=release /m /v:n
6969
```
7070

7171
### Output Location
7272

7373
After successful build, artifacts are produced in one of these locations (bundle outputs are culture-specific under `en-US/`):
7474

75-
- WiX 3 default: `FLExInstaller/bin/<platform>/<configuration>/`
76-
- WiX 6 opt-in: `FLExInstaller/wix6/bin/<platform>/<configuration>/`
75+
- WiX 3 default: `FLExInstaller/bin/x64/<configuration>/`
76+
- WiX 6 opt-in: `FLExInstaller/wix6/bin/x64/<configuration>/`
7777

7878
## Building a Patch Installer
7979

@@ -89,10 +89,10 @@ These can be downloaded from GitHub Releases (e.g., `build-1188`).
8989

9090
```powershell
9191
# Restore packages
92-
msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug /p:Platform=x64
92+
msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug
9393
94-
# Build patch installer (x64 only)
95-
msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Release /p:Platform=x64 /p:config=release /m /v:n
94+
# Build patch installer
95+
msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Release /p:config=release /m /v:n
9696
```
9797

9898
### Output Location
@@ -157,7 +157,7 @@ Workflows should use **WiX Toolset v6** via `WixToolset.Sdk` restored from NuGet
157157
**Cause**: NuGet restore/build tools not fully restored, or missing VS build prerequisites.
158158

159159
**Fix**:
160-
1. Ensure `msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug /p:Platform=x64` succeeds.
160+
1. Ensure `msbuild Build/InstallerBuild.proj /t:RestorePackages /p:Configuration=Debug` succeeds.
161161
2. Re-run `\Build\Agent\Setup-InstallerBuild.ps1 -ValidateOnly` and resolve any reported issues.
162162
2. Add WiX bin directory to PATH: `C:\Program Files (x86)\WiX Toolset v3.14\bin`
163163

Docs/traversal-sdk-migration.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ Installer builds use traversal internally but are invoked via MSBuild targets:
8686

8787
```powershell
8888
# Base installer (calls traversal build via Installer.targets)
89-
msbuild Build/InstallerBuild.proj /t:BuildBaseInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release
89+
msbuild Build/InstallerBuild.proj /t:BuildBaseInstaller /p:Configuration=Debug /p:config=release
9090
9191
# Patch installer (calls traversal build via Installer.targets)
92-
msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Debug /p:Platform=x64 /p:config=release
92+
msbuild Build/InstallerBuild.proj /t:BuildPatchInstaller /p:Configuration=Debug /p:config=release
9393
```
9494

9595
Note: The installer targets in `Build/Installer.targets` have been modernized to call `FieldWorks.proj` instead of the old `remakefw` target.
@@ -112,7 +112,7 @@ msbuild Src/xWorks/xWorks.csproj /p:Configuration=Debug
112112

113113
**Solution**: Build native components first:
114114
```powershell
115-
msbuild Build\Src\NativeBuild\NativeBuild.csproj /p:Configuration=Debug /p:Platform=x64
115+
msbuild Build\Src\NativeBuild\NativeBuild.csproj /p:Configuration=Debug
116116
.\build.ps1
117117
```
118118

FieldWorks.LocalLcm.sln

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SIL.LCModel", "Localization
252252
EndProject
253253
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SIL.LCModel.Core", "Localizations\LCM\src\SIL.LCModel.Core\SIL.LCModel.Core.csproj", "{4C7D6B65-A331-4ED7-9B53-3301E714F8E7}"
254254
EndProject
255+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SIL.LCModel.FixData", "Localizations\LCM\src\SIL.LCModel.FixData\SIL.LCModel.FixData.csproj", "{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}"
256+
EndProject
255257
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SIL.LCModel.Utils", "Localizations\LCM\src\SIL.LCModel.Utils\SIL.LCModel.Utils.csproj", "{4E4CE84F-BB35-416A-8E4F-B8C096DA32B7}"
256258
EndProject
257259
Global
@@ -993,6 +995,12 @@ Global
993995
{4C7D6B65-A331-4ED7-9B53-3301E714F8E7}.Debug|x64.Build.0 = Debug|Any CPU
994996
{4C7D6B65-A331-4ED7-9B53-3301E714F8E7}.Release|x64.ActiveCfg = Release|Any CPU
995997
{4C7D6B65-A331-4ED7-9B53-3301E714F8E7}.Release|x64.Build.0 = Release|Any CPU
998+
{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}.Bounds|x64.ActiveCfg = Release|Any CPU
999+
{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}.Bounds|x64.Build.0 = Release|Any CPU
1000+
{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}.Debug|x64.ActiveCfg = Debug|Any CPU
1001+
{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}.Debug|x64.Build.0 = Debug|Any CPU
1002+
{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}.Release|x64.ActiveCfg = Release|Any CPU
1003+
{4983B3EB-F54A-4DED-B89C-1A4D6A12C96D}.Release|x64.Build.0 = Release|Any CPU
9961004
{4E4CE84F-BB35-416A-8E4F-B8C096DA32B7}.Bounds|x64.ActiveCfg = Release|Any CPU
9971005
{4E4CE84F-BB35-416A-8E4F-B8C096DA32B7}.Bounds|x64.Build.0 = Release|Any CPU
9981006
{4E4CE84F-BB35-416A-8E4F-B8C096DA32B7}.Debug|x64.ActiveCfg = Debug|Any CPU

0 commit comments

Comments
 (0)