diff --git a/.github/workflows/base-installer-cd.yml b/.github/workflows/base-installer-cd.yml
index aab44b5abf..d03133222d 100644
--- a/.github/workflows/base-installer-cd.yml
+++ b/.github/workflows/base-installer-cd.yml
@@ -55,7 +55,7 @@ jobs:
- name: Compute build number
id: build_number
run: |
- $lastJenkins = 1100 # The last base build from jenkins, rounded to the next hundred
+ $lastJenkins = 1000 # The last base build from jenkins, rounded to the nearest thousand
$githubRun = $env:GITHUB_RUN_NUMBER
$combined = $lastJenkins + $githubRun
echo "Calculated build number: $combined"
@@ -103,17 +103,35 @@ jobs:
fetch-depth: 0
path: 'Localizations/LCM'
- - name: Download .NET 461 targeting pack
- uses: suisei-cn/actions-download-file@818d6b7dc8fe73f2f924b6241f2b1134ca1377d9 # 1.6.0
- id: downloadfile # Remember to give an ID if you need the output filename
- with:
- url: "https://download.microsoft.com/download/F/1/D/F1DEB8DB-D277-4EF9-9F48-3A65D4D8F965/NDP461-DevPack-KB3105179-ENU.exe"
- target: public/
+ - name: Ensure .NET Framework 4.8 targeting pack
+ shell: pwsh
+ run: |
+ # Check registry Release key for .NET Framework 4.8 (Release >= 528040 indicates 4.8)
+ $targetRelease = 528040
+ try {
+ $releaseKey = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" -Name Release -ErrorAction Stop).Release
+ } catch {
+ $releaseKey = $null
+ }
- - name: Install .NET 461 targeting pack
- shell: cmd
- working-directory: public
- run: NDP461-DevPack-KB3105179-ENU.exe /q
+ if (-not $releaseKey -or $releaseKey -lt $targetRelease) {
+ Write-Host "Detected .NET release $releaseKey. Installing .NET Framework 4.8 Developer Pack..."
+ $installerUrl = "https://download.microsoft.com/download/9/5/0/9500E0A8-3C76-45F9-8D4B-8D2A7F2C1A3A/NDP48-DevPack-KB4486153-ENU.exe"
+ $installer = Join-Path $env:RUNNER_TEMP "NDP48-DevPack-KB4486153-ENU.exe"
+
+ Invoke-WebRequest -Uri $installerUrl -OutFile $installer -UseBasicParsing -TimeoutSec 120
+
+ Write-Host "Starting installer..."
+ $proc = Start-Process -FilePath $installer -ArgumentList "/quiet","/norestart" -Wait -PassThru
+ if ($proc.ExitCode -ne 0) {
+ Write-Error "Failed to install .NET 4.8 Developer Pack. ExitCode: $($proc.ExitCode)"
+ exit $proc.ExitCode
+ }
+ Write-Host ".NET 4.8 Developer Pack installation finished."
+ }
+ else {
+ Write-Host ".NET Framework 4.8 (Release=$releaseKey) already present. Skipping install."
+ }
- name: Setup dotnet
uses: actions/setup-dotnet@v4
@@ -134,24 +152,14 @@ jobs:
echo "C:\Program Files (x86)\WiX Toolset v3.11\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
if: github.event_name != 'pull_request'
- - name: Prepare for build
- shell: cmd
- working-directory: Build
- run: build64.bat /t:WriteNonlocalDevelopmentPropertiesFile
-
- name: Build and run tests
id: build_installer
shell: powershell
run: |
- cd Build
- .\build64.bat /t:BuildBaseInstaller "/property:config=release;action=test;desktopNotAvailable=true" /v:d /bl ^| tee-object -FilePath build.log
- cd ..
- cd BuildDir
- md5sum *.exe > md5.txt
+ .\build.ps1 -BuildInstaller -Configuration Release -MsBuildArgs @("/p:action=test;desktopNotAvailable=true","/v:d","/bl") | Tee-Object -FilePath build.log
- name: Scan Build Output
shell: powershell
- working-directory: Build
run: |
$results = Select-String -Path "build.log" -Pattern "^\s*[1-9][0-9]* Error\(s\)"
if ($results) {
@@ -298,5 +306,5 @@ jobs:
if-no-files-found: warn
name: build-logs
path: |
- Build/*.log
- Build/*.binlog
+ *.log
+ *.binlog
diff --git a/.github/workflows/patch-installer-cd.yml b/.github/workflows/patch-installer-cd.yml
index 0b89bc051a..254e222322 100644
--- a/.github/workflows/patch-installer-cd.yml
+++ b/.github/workflows/patch-installer-cd.yml
@@ -8,7 +8,7 @@ name: Patch Installer
on:
push:
- branches: ["main"]
+ branches: ["main", "release/**"]
schedule:
# Runs every Monday at 03:30 UTC (which is 8:30pm MST/PDT Sunday evening)
- cron: "30 3 * * 1"
@@ -118,17 +118,35 @@ jobs:
fetch-depth: 0
path: 'Localizations/LCM'
- - name: Download .NET 461 targeting pack
- uses: suisei-cn/actions-download-file@818d6b7dc8fe73f2f924b6241f2b1134ca1377d9 # 1.6.0
- id: downloadfile # Remember to give an ID if you need the output filename
- with:
- url: "https://download.microsoft.com/download/F/1/D/F1DEB8DB-D277-4EF9-9F48-3A65D4D8F965/NDP461-DevPack-KB3105179-ENU.exe"
- target: public/
+ - name: Ensure .NET Framework 4.8 targeting pack
+ shell: pwsh
+ run: |
+ # Check registry Release key for .NET Framework 4.8 (Release >= 528040 indicates 4.8)
+ $targetRelease = 528040
+ try {
+ $releaseKey = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" -Name Release -ErrorAction Stop).Release
+ } catch {
+ $releaseKey = $null
+ }
- - name: Install .NET 461 targeting pack
- shell: cmd
- working-directory: public
- run: NDP461-DevPack-KB3105179-ENU.exe /q
+ if (-not $releaseKey -or $releaseKey -lt $targetRelease) {
+ Write-Host "Detected .NET release $releaseKey. Installing .NET Framework 4.8 Developer Pack..."
+ $installerUrl = "https://download.microsoft.com/download/9/5/0/9500E0A8-3C76-45F9-8D4B-8D2A7F2C1A3A/NDP48-DevPack-KB4486153-ENU.exe"
+ $installer = Join-Path $env:RUNNER_TEMP "NDP48-DevPack-KB4486153-ENU.exe"
+
+ Invoke-WebRequest -Uri $installerUrl -OutFile $installer -UseBasicParsing -TimeoutSec 120
+
+ Write-Host "Starting installer..."
+ $proc = Start-Process -FilePath $installer -ArgumentList "/quiet","/norestart" -Wait -PassThru
+ if ($proc.ExitCode -ne 0) {
+ Write-Error "Failed to install .NET 4.8 Developer Pack. ExitCode: $($proc.ExitCode)"
+ exit $proc.ExitCode
+ }
+ Write-Host ".NET 4.8 Developer Pack installation finished."
+ }
+ else {
+ Write-Host ".NET Framework 4.8 (Release=$releaseKey) already present. Skipping install."
+ }
- name: Setup dotnet
uses: actions/setup-dotnet@v4
@@ -183,10 +201,8 @@ jobs:
Expand-Archive -Path "base-artifacts/ProcRunner.zip" -DestinationPath $procTarget -Force
Write-Host "Expanded ProcRunner.zip -> $procTarget"
- # Write out the properties file (a first build on a system requires a prompt response otherwise)
- # and set an OS feature in the registry that will allow Wix v3 to use temporary files without error
+ # Set an OS feature in the registry that will allow Wix v3 to use temporary files without error
- name: Prepare for build
- working-directory: Build
run: |
# Define paths and the key/value to set
$regPaths = @(
@@ -203,22 +219,16 @@ jobs:
}
New-ItemProperty -Path $path -Name $valueName -Value $expectedValue -Type String -Force
}
-
- .\build64.bat /t:WriteNonlocalDevelopmentPropertiesFile
- name: Build Debug and run tests
id: build_installer
shell: powershell
run: |
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\AppContext"
- cd Build
- .\build64.bat /t:BuildPatchInstaller "/property:config=release;action=test;desktopNotAvailable=true" /v:d /bl ^| tee-object -FilePath build.log
- cd ..
- cd BuildDir
+ .\build.ps1 -BuildPatch -Configuration Release -MsBuildArgs @("/p:action=test;desktopNotAvailable=true","/v:d","/bl") | Tee-Object -FilePath build.log
- name: Scan Debug Build Output
shell: powershell
- working-directory: Build
run: |
$results = Select-String -Path "build.log" -Pattern "^\s*[1-9][0-9]* Error\(s\)"
if ($results) {
@@ -281,5 +291,5 @@ jobs:
if-no-files-found: warn
name: build-logs
path: |
- Build/*.log
- Build/*.binlog
+ *.log
+ *.binlog
diff --git a/.gitignore b/.gitignore
index 1d10128593..6bf8a3485d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,7 +54,6 @@ x64
*.user
*.ncrunchsolution
*.ncb
-FW.sln
*.suo
*.o
*_ReSharper*
@@ -89,6 +88,7 @@ buildi686/
buildx86_64/
installi686/
installx86_64/
+msbuild.binlog
test-results/
trash/
UpgradeLog*.XML
diff --git a/Build/FieldWorks.targets b/Build/FieldWorks.targets
new file mode 100644
index 0000000000..a8b474e2df
--- /dev/null
+++ b/Build/FieldWorks.targets
@@ -0,0 +1,3289 @@
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+ TRACE CODE_ANALYSIS
+
+
+
+
+ DEBUG TRACE CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Build/Installer.Wix3.targets b/Build/Installer.Wix3.targets
index 521783ee7a..0ef1f36cdb 100644
--- a/Build/Installer.Wix3.targets
+++ b/Build/Installer.Wix3.targets
@@ -28,5 +28,5 @@
-
+
diff --git a/Build/Localize.targets b/Build/Localize.targets
index d90bf81996..72eed307ba 100644
--- a/Build/Localize.targets
+++ b/Build/Localize.targets
@@ -36,6 +36,8 @@
$(ListsDirectory)/GramCats
$(L10nsBaseDir)/messages.pot
$(LcmRootDir)/src
+ true
+ $(fwrt)/Downloads
$(DownloadsDir)/Crowdin.zip
$(CROWDIN_API_KEY)
true
@@ -114,6 +116,7 @@ To update localizations, liblcm must be cloned locally to the location specified
DependsOnTargets="ValidateCrowdinApiKey;InstallOvercrowdin"
>
+
70
-
- $([System.IO.Directory]::GetParent($(MSBuildProjectDirectory)))
+
+ $([System.IO.Directory]::GetParent($(MSBuildProjectDirectory)))
$(MSBuildThisFileDirectory)..
+ $(fwrt)/Downloads