Files
ykxmz/_build/test_install_fresh.ps1
T
xmz7891 ce87ec1650 1.7.0:常规发布
- 版本号 1.7.0 -> 1.7.0
- 重建三端并打包
- 关键测试全过
2026-10-06 23:08:07 +08:00

85 lines
3.6 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全新安装验证:清干净 -> 装到默认路径 -> 跑一遍 -> 检查权限
# 用法: powershell -NoProfile -ExecutionPolicy Bypass -File _build\test_install_fresh.ps1
$ErrorActionPreference = "Continue"
$root = "C:\Users\shu\Desktop\deepseekagent\LanRemote"
$setup = Join-Path $root "dist\ykxmz-setup-1.6.2.exe"
$appId = "{8F3C1D42-7A5E-4B91-9C6D-2E8F4A1B7C30}_is1"
Write-Host ""
Write-Host "===== 1. 彻底清理上一次的安装 =====" -ForegroundColor Cyan
Get-Process ykxmz, unins000 -ErrorAction SilentlyContinue |
Stop-Process -Force -ErrorAction SilentlyContinue
Start-Sleep -Seconds 2
foreach ($dir in @("C:\Program Files\ykxmz", "C:\ProgramData\_ykxmz_test",
"C:\ProgramData\ykxmz")) {
if (Test-Path "$dir\unins000.exe") {
Start-Process "$dir\unins000.exe" `
-ArgumentList "/VERYSILENT", "/SUPPRESSMSGBOXES" -Wait `
-ErrorAction SilentlyContinue
Start-Sleep -Seconds 2
}
Remove-Item $dir -Recurse -Force -ErrorAction SilentlyContinue
}
# 删掉 Inno 记住的目录,否则下次还会装到老地方
foreach ($hive in @("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall")) {
Remove-Item "$hive\$appId" -Recurse -Force -ErrorAction SilentlyContinue
}
Write-Host " 清理完成"
Write-Host ""
Write-Host "===== 2. 全新安装(不带 /DIR,看默认去哪)=====" -ForegroundColor Cyan
$log = Join-Path $root "_build\install_fresh.log"
Remove-Item $log -Force -ErrorAction SilentlyContinue
$proc = Start-Process -FilePath $setup `
-ArgumentList "/VERYSILENT", "/SUPPRESSMSGBOXES", "/NORESTART",
"/LOG=$log", "/CODE=654321" -PassThru -Wait
Write-Host " 安装 exit=$($proc.ExitCode)"
Write-Host ""
Write-Host "===== 3. 安装位置 =====" -ForegroundColor Cyan
$exe = "C:\Program Files\ykxmz\ykxmz.exe"
Write-Host " $exe : $(Test-Path $exe)"
Write-Host " _internal : $((Get-ChildItem 'C:\Program Files\ykxmz\_internal' -ErrorAction SilentlyContinue | Measure-Object).Count) 项"
Write-Host " docs : $((Get-ChildItem 'C:\Program Files\ykxmz\docs' -ErrorAction SilentlyContinue | Measure-Object).Count) 个"
Write-Host ""
Write-Host "===== 4. 数据目录权限 =====" -ForegroundColor Cyan
$dataDir = "C:\ProgramData\ykxmz\data"
if (Test-Path $dataDir) {
Write-Host " $dataDir 存在"
(Get-Acl $dataDir).Access |
Where-Object { $_.IdentityReference -match "Users|用户" } |
ForEach-Object { Write-Host " $($_.IdentityReference) : $($_.FileSystemRights)" }
} else {
Write-Host " $dataDir 不存在(还没运行过,正常)"
}
Write-Host ""
Write-Host "===== 5. 跑起来(这一步以前报 WinError 5)=====" -ForegroundColor Cyan
if (Test-Path $exe) {
& $exe --status 2>&1 |
Select-String -Pattern "配对码|数据目录|开机自启" |
ForEach-Object { Write-Host " $($_.Line.Trim())" }
Write-Host ""
Write-Host " 写一次配置(模拟实际运行):"
$out = & $exe --name "三年二班" 2>&1
$out | ForEach-Object { Write-Host " $_" }
Write-Host " exit=$LASTEXITCODE"
Write-Host ""
Write-Host " 再看状态:"
& $exe --status 2>&1 |
Select-String -Pattern "配对码|数据目录" |
ForEach-Object { Write-Host " $($_.Line.Trim())" }
} else {
Write-Host " ✗ 找不到 exe,安装失败了" -ForegroundColor Red
if (Test-Path $log) {
Get-Content $log -Encoding UTF8 | Select-Object -Last 15 |
ForEach-Object { Write-Host " $_" }
}
}