程式介面

核心設計原則
- **通用性**:不綁定特定主程式,放於同級目錄即可運作。
- **檔案介面**:透過 `autoupdate.config` 讀取升級清單位址與完成命令。
- **容錯性**:多 URL 依序嘗試,單點失效不影響整體。
配置檔完整格式
url=url1$url2$url3$url4
cmd=cmd.exe
升級流程詳解
- 讀取 `autoupdate.config` 取得 URL 陣列與完成命令。
- 依序 HTTP GET 各 URL,首個回傳 200 OK 者為有效清單。
- 解析清單每行:`下載URL$本地檔名`(換行分隔)。
- 依序下載每個檔案至升級程式目錄下對應相對路徑(自動建立子目錄)。
- 全部下載成功 → 執行 `cmd` 指定命令(通常啟動主程式或安裝器)。
- 任一步驟失敗 → 寫入 `autoupdate.error` 記錄錯誤 → 結束。
關鍵實作細節
- 使用 `WebClient` / `HttpClient` 下載,支援大檔案進度回報(可擴展 UI 顯示進度條)。
- 檔案寫入採用臨時檔 + 原子重命名,避免部分寫入損壞現有檔案。
- 完成命令透過 `Process.Start` 執行,可帶參數(如 `main.exe /updated`)。
- 主程式啟動邏輯:檢查版本 → 需升級 → `Process.Start("AutoUpdate.exe")` → `Environment.Exit(0)`。