release: 1.0.9.0 — panel i18n + self-signed build signing

- Bump AssemblyInfo to 1.0.9.0 and add the CHANGELOG section.
- build.ps1 now code-signs the Release exe with a self-signed
  certificate (reused across builds, generated on first use, no env
  or secrets needed) to lower false-positive AV/VirusTotal detections.
This commit is contained in:
kitbyte
2026-06-15 00:32:32 +03:00
parent 4ce47dc6d2
commit 6395ca3a27
3 changed files with 51 additions and 2 deletions
+12
View File
@@ -3,6 +3,18 @@
This file is the source of truth for release notes. This file is the source of truth for release notes.
The newest entry must match the version in `WandEnhancer/Properties/AssemblyInfo.cs`. The newest entry must match the version in `WandEnhancer/Properties/AssemblyInfo.cs`.
## [1.0.9.0] - 2026-06-15
### Features
- The Remote Web Panel now shows mod names, descriptions, and instructions translated to your WeMod account language. #98
- Added a language selector to the Remote Web Panel (English, Russian, German, French, Spanish, Simplified Chinese) with automatic detection from the browser language.
### Improvements
- Release builds are now code-signed, which reduces false-positive antivirus and VirusTotal detections.
- Reworked the Remote Web Panel internals around feature capabilities for easier maintenance, with no change to existing behavior.
## [1.0.8.4] - 2026-06-10 ## [1.0.8.4] - 2026-06-10
### Fixes ### Fixes
+2 -2
View File
@@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.8.4")] [assembly: AssemblyVersion("1.0.9.0")]
[assembly: AssemblyFileVersion("1.0.8.4")] [assembly: AssemblyFileVersion("1.0.9.0")]
+37
View File
@@ -105,5 +105,42 @@ Invoke-Step 'Build solution' {
& $msbuild $solutionPath /m /p:Configuration=$Configuration '/p:Platform=Any CPU' /t:Build & $msbuild $solutionPath /m /p:Configuration=$Configuration '/p:Platform=Any CPU' /t:Build
} }
# Code-sign the release executable. A self-signed signature notably lowers
# false-positive AV/VirusTotal detections. The cert is reused across builds and
# generated on first use, so no secrets or env configuration are required.
if ($Configuration -eq 'Release') {
Write-Host '==> Sign WandEnhancer.exe' -ForegroundColor Cyan
$exePath = Join-Path $repoRoot "WandEnhancer/bin/$Configuration/WandEnhancer.exe"
if (-not (Test-Path $exePath)) {
throw "Executable not found for signing: $exePath"
}
$signingSubject = 'CN=Wand-Enhancer'
$cert = Get-ChildItem Cert:\CurrentUser\My |
Where-Object { $_.Subject -eq $signingSubject -and $_.HasPrivateKey } |
Select-Object -First 1
if (-not $cert) {
$cert = New-SelfSignedCertificate `
-Subject $signingSubject `
-Type CodeSigningCert `
-CertStoreLocation Cert:\CurrentUser\My `
-KeyExportPolicy Exportable `
-KeyUsage DigitalSignature `
-KeyAlgorithm RSA `
-KeyLength 2048 `
-HashAlgorithm SHA256 `
-NotAfter (Get-Date).AddYears(5)
Write-Host "Generated self-signed code-signing certificate: $($cert.Subject) [$($cert.Thumbprint)]"
}
$signature = Set-AuthenticodeSignature -FilePath $exePath -Certificate $cert -HashAlgorithm SHA256
if ($signature.Status -ne 'Valid') {
throw "Signing failed: $($signature.Status) - $($signature.StatusMessage)"
}
Write-Host "Signed $exePath [$($cert.Thumbprint)]"
}
Write-Host '' Write-Host ''
Write-Host "Build completed successfully ($Configuration)." -ForegroundColor Green Write-Host "Build completed successfully ($Configuration)." -ForegroundColor Green