diff --git a/Directory.Build.props b/Directory.Build.props
index 476fafe..fe67d70 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,16 +1,17 @@
-
+
- 0.0.44
+ 0.0.44
diff --git a/installer/Ezvpn.Installer.wixproj b/installer/Ezvpn.Installer.wixproj
index 77550bc..7dd251c 100644
--- a/installer/Ezvpn.Installer.wixproj
+++ b/installer/Ezvpn.Installer.wixproj
@@ -16,9 +16,9 @@
user sees. -->
0.1.0.0
- $(EzvpnVersion)
+ (via ARPDISPLAYVERSION). Sourced from EzvpnAppVersion (Directory.Build.props)
+ so it matches the app version shown inside the app. -->
+ $(EzvpnAppVersion)
diff --git a/native/native.targets b/native/native.targets
index c00f83d..ed36d3b 100644
--- a/native/native.targets
+++ b/native/native.targets
@@ -27,9 +27,13 @@
+ The tag (minus "v") is also surfaced as EzvpnCoreVersion, which Ezvpn.App
+ stamps into its assembly metadata so the UI can name the core it ships
+ next to the app's own version (EzvpnAppVersion in Directory.Build.props,
+ which is independent of this pin). A local core build (EZVPN_LOCAL_DLL)
+ still reports the pinned number: the local DLL carries none. -->
v0.0.44
+ $(EzvpnReleaseTag.TrimStart('v'))
https://github.com/flexaccessdev/ezvpn/releases/download/$(EzvpnReleaseTag)/ezvpn-windows.dll.zip
8266f394ec55b0bffcd6ed283f2778fdd43c7c130fd1f92a8a6903fde406111e
diff --git a/scripts/bump-dll.ps1 b/scripts/bump-dll.ps1
index 98aa35a..e379085 100644
--- a/scripts/bump-dll.ps1
+++ b/scripts/bump-dll.ps1
@@ -6,9 +6,10 @@
The Windows analog of ezvpn-apple's scripts/bump-xcframework.sh. Downloads the
release's ezvpn-windows.dll.zip, computes its SHA256, and rewrites the
EzvpnReleaseTag + EzvpnDllZipSha256 in native\native.targets so the app build
- downloads that exact DLL by default (no local core build needed). It also updates
- EzvpnVersion in Directory.Build.props to the same tag (minus the leading "v") so
- the version shown in the app UI and in Add/Remove Programs tracks the bundled DLL.
+ downloads that exact DLL by default (no local core build needed). The app's own
+ version (EzvpnAppVersion in Directory.Build.props) is independent of the DLL pin
+ and is not touched; the UI shows the pinned core version next to it via the
+ EzvpnCoreVersion property native.targets derives from the tag.
wintun.dll is pinned separately in native.targets and is not touched here.
.PARAMETER Tag
@@ -30,10 +31,7 @@ $Asset = 'ezvpn-windows.dll.zip'
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$Targets = Join-Path $ScriptDir '..\native\native.targets'
-$BuildProps = Join-Path $ScriptDir '..\Directory.Build.props'
-
if (-not (Test-Path $Targets)) { throw "native.targets not found at $Targets" }
-if (-not (Test-Path $BuildProps)) { throw "Directory.Build.props not found at $BuildProps" }
if (-not $Tag) {
if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
@@ -68,19 +66,7 @@ if ($content -notmatch [regex]::Escape("$Sha]*>).*?()', "`${1}$Version`${2}"
-if ($props -notmatch [regex]::Escape(">$Version")) {
- throw "failed to rewrite EzvpnVersion in $BuildProps"
-}
-Set-Content -Path $BuildProps -Value $props -NoNewline
-
Write-Host "Pinned native.targets:"
Write-Host " tag: $Tag"
Write-Host " checksum: $Sha"
Write-Host " url: $Url"
-Write-Host "Synced Directory.Build.props:"
-Write-Host " version: $Version"
diff --git a/src/Ezvpn.App/AppInfo.cs b/src/Ezvpn.App/AppInfo.cs
index 76a6522..3f58c30 100644
--- a/src/Ezvpn.App/AppInfo.cs
+++ b/src/Ezvpn.App/AppInfo.cs
@@ -3,16 +3,28 @@
namespace Ezvpn.App;
///
-/// App-level metadata surfaced in the UI. The version comes from the assembly's
-/// informational version (set by <Version> in Ezvpn.App.csproj, overridable
-/// from CI); any build-metadata suffix (e.g. "+<commit>" added by SourceLink)
-/// is trimmed off.
+/// App-level metadata surfaced in the UI. The app version comes from the
+/// assembly's informational version (set by <Version> in Ezvpn.App.csproj from
+/// EzvpnAppVersion, overridable from CI); any build-metadata suffix (e.g.
+/// "+<commit>" added by SourceLink) is trimmed off. The core version is the
+/// pinned ezvpn.dll release (native.targets EzvpnReleaseTag), stamped into the
+/// assembly as the "EzvpnCoreVersion" metadata entry. The two move independently.
///
public static class AppInfo
{
/// The app version formatted for display, e.g. "v0.1.0".
public static string Version { get; } = ComputeVersion();
+ ///
+ /// The pinned ezvpn core release formatted for display, e.g. "v0.0.44". A
+ /// local core build (EZVPN_LOCAL_DLL) still reports the pinned number — the
+ /// local DLL carries none.
+ ///
+ public static string CoreVersion { get; } = ComputeCoreVersion();
+
+ /// Both numbers on one line, e.g. "v0.1.0 · core v0.0.44".
+ public static string Summary { get; } = $"{Version} · core {CoreVersion}";
+
private static string ComputeVersion()
{
var informational = Assembly.GetExecutingAssembly()
@@ -24,4 +36,13 @@ private static string ComputeVersion()
return "v" + version;
}
+
+ private static string ComputeCoreVersion()
+ {
+ var core = Assembly.GetExecutingAssembly()
+ .GetCustomAttributes()
+ .FirstOrDefault(a => a.Key == "EzvpnCoreVersion")?.Value;
+
+ return core is { Length: > 0 } ? "v" + core : "unknown";
+ }
}
diff --git a/src/Ezvpn.App/Ezvpn.App.csproj b/src/Ezvpn.App/Ezvpn.App.csproj
index 1542065..81b8459 100644
--- a/src/Ezvpn.App/Ezvpn.App.csproj
+++ b/src/Ezvpn.App/Ezvpn.App.csproj
@@ -7,9 +7,9 @@
Ezvpn.App
app.manifest
- $(EzvpnVersion)
+ $(EzvpnAppVersion)
x64;arm64
win-x64;win-arm64
+
+
+
+
+