You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell GUI调用的XML文件中显示PowerShell工具的版本号

可行实现方案

步骤1:修改独立XAML文件的标签标识

在你现有的XAML代码里,给显示版本的<Run>节点添加唯一的x:Name属性,方便后续PowerShell定位修改,不需要调整其他XML结构,完全符合XML独立存放的要求,修改后对应部分代码如下:

<Label Grid.Row="1" 
       Grid.Column="0" 
       x:Name="label2">
  <Run FontFamily="Calibri" FontWeight="Bold" FontSize="20" x:Name="versionDisplay" Text="Tool Version Number: "  /> 
</Label>

步骤2:PowerShell加载XAML后动态注入版本号

在原有加载XAML的代码之后,增加版本号读取、XML节点修改的逻辑,同时兼容调试阶段运行.ps1脚本和发布后运行.exe可执行文件两种场景,完整代码如下:

# 原有加载XAML的代码
$aboutXaml = retrieveFile -folderPath "F:\powershellGUI" -fileSelect "about.xml"
$global:aboutWindow = New-Object xml
$global:aboutWindow.Load($aboutXaml)

# 新增:自动获取版本号(兼容脚本/EXE两种运行场景)
$currentProcessName = [System.Diagnostics.Process]::GetCurrentProcess().ProcessName
# 下方替换为你编译后生成的exe文件名
$isExe = $currentProcessName -eq "tool"
if ($isExe) {
    # 运行exe时从文件属性读取版本
    $fileVersion = (Get-Command $MyInvocation.MyCommand.Path).FileVersionInfo.FileVersion
} else {
    # 调试.ps1脚本时从注释头读取版本,复用现有编译脚本的提取逻辑
    $authorLines = get-content $MyInvocation.MyCommand.Path | Where-Object {$_ -match 'Author'}
    if($authorLines.Count -gt 1) {
        $fileVersion = ($authorLines[0] -split ' ')[-1]
    } elseif ($authorLines.Count -eq 1){
        $fileVersion = ($authorLines -split ' ')[-1]
    }else{
        $fileVersion = "未知版本"
    }
}

# 新增:修改XML中的版本显示文本
$nsManager = New-Object System.Xml.XmlNamespaceManager($global:aboutWindow.NameTable)
$nsManager.AddNamespace("x", "http://schemas.microsoft.com/winfx/2006/xaml")
$nsManager.AddNamespace("default", "http://schemas.microsoft.com/winfx/2006/xaml/presentation")
# 定位到添加了x:Name的Run节点
$versionNode = $global:aboutWindow.SelectSingleNode("//default:Run[@x:Name='versionDisplay']", $nsManager)
# 拼接版本号到原有文本后
$versionNode.SetAttribute("Text", "Tool Version Number: $fileVersion")

步骤3:后续流程无需调整

原有编译打包逻辑完全不需要修改,版本号只会在脚本运行时动态注入到加载的XML对象中,不会修改原始XML文件,也不需要手动维护XML内的版本信息,完全和.ps1头部声明的版本号实时同步。

内容的提问来源于stack exchange,提问作者AngelOfChaos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:18:01