> For the complete documentation index, see [llms.txt](https://ndw777.gitbook.io/manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ndw777.gitbook.io/manual/getting-started/updating.md).

# 軟體更新

## 怎麼檢查

預設會在啟動時自動檢查。也可以到「關於本程式」按**檢測新版本**手動觸發。

新版提示視窗裡有「**不再提示此版本**」勾選框。勾了只對那一版有效，再出更新的版本還是會提示；手動按檢測也不受它影響。

## 它怎麼更新

整個程式有一百多 MB，但**只改程式碼的改版，實際變動的只有主程式那一個檔**（約 10 MB）。所以更新檔分成三包：

| 包       | 內容                | 多常變  |
| ------- | ----------------- | ---- |
| app     | 主程式 exe           | 每次改版 |
| data    | 隨程式附的資料與說明檔       | 偶爾   |
| runtime | 執行環境（`_internal`） | 很少   |

程式會比對本機已裝的版本，**只下載對不上的那幾包**。典型的改版只要抓 10 MB 左右。

## 換檔的兩條路

**只更新 app／data**：就地換檔，然後程式自動重啟。很快。

**需要更新 runtime**：`_internal` 底下的檔案在程式執行中被鎖著，改不了。這種情況程式會寫一支批次檔，**等你按完「確定」、主程式關閉之後**才換，換完自己啟動新程式。

> 按下「確定」後請**讓程式自己關閉**，中間會閃一下黑視窗，屬正常。

## 什麼情況不支援程式內更新

* 安裝目錄**沒有寫入權限**（例如裝在 `C:\Program Files`）
* 使用的是單一 exe 的版本

這兩種情況下，程式只會提示「有新版本」而不會幫你換，請自己下載完整安裝包重裝。

## 更新失敗了怎麼辦

換檔失敗時程式會複原，舊版本繼續可用。安裝目錄裡可能會看到副檔名 `.tb-old` 的檔案，那是舊版本的備份，下次啟動時程式會自己清掉。

若更新後程式起不來，把 `.tb-old` 的副檔名拿掉、改回原本的檔名即可。

**重要**：3.0 版的程式內更新在需要一併更新執行環境時會失敗。3.01 以後已修正，但從 3.0 升級請直接下載完整安裝包重裝一次。

## 你的資料會不會被蓋掉

不會。更新只會換「隨程式附的」檔案，你自己改過或程式會寫回去的那些都排除在外：網站快搜的自訂站台清單、自有藥品明細表、各個 `.db` 查詢檔、設定檔。
