# Visual Studio 2026 安裝與使用指南 > **版本**:V3.4 > > 本指南說明如何在 **Visual Studio 2026**(v18.x)中透過 GitHub Copilot Chat 使用 ECPay API Skill。 > Visual Studio 2022(v17.14+)亦適用相同步驟。 ## 前置需求 | 項目 | 需求 | |------|------| | **Visual Studio** | 2026(v18.0+)或 2022(v17.14+);Community / Professional / Enterprise 皆可 | | **GitHub Copilot** | 需有 Copilot 存取權限([Free 方案](https://learn.microsoft.com/en-us/visualstudio/ide/copilot-free-plan?view=visualstudio)即可使用 Chat,每月 50 次對話;Pro(USD $10/月)為無限補全 + 無限標準 Chat,另含每月進階模型額度;Business / Enterprise 依方案而定。各方案最新額度以 [GitHub 官方說明](https://docs.github.com/en/copilot/concepts/billing/individual-plans) 為準) | | **登入** | 在 Visual Studio 中以具備 Copilot 權限的 GitHub 帳號登入 | > 💡 **GitHub Copilot Free 方案**:不需信用卡、不需試用期,只需 GitHub 帳號即可啟用。每月 2,000 次程式碼補全 + 50 次 Chat 對話(自 2025 Q4 起另含每月 50 次進階模型請求)。對於初次評估 ECPay 串接已相當充足。 ## 安裝步驟 ### 步驟 1:取得 ECPay API Skill 檔案 在 Visual Studio 的 Terminal 或 Developer Command Prompt 中執行: ```powershell # Clone 到專案目錄下(僅當前專案使用) git clone https://github.com/ECPay/ECPay-API-Skill.git .ecpay-skill ``` ### 步驟 2:設定 Custom Instructions ECPay API Skill 透過 GitHub Copilot 的 **Custom Instructions**(`.github/copilot-instructions.md`)機制載入。此設定檔可隨專案一起版控、供團隊共用,設定步驟如下: 1. 在你的**專案根目錄**建立 `.github` 資料夾(如不存在) 2. 建立檔案 `.github/copilot-instructions.md` 3. 貼入以下內容: > 💡 以下內容為「**使用導向**」設定,與本 repo 自身的 `.github/copilot-instructions.md`(維護導向)刻意不同,請勿互相複製混用。 ```markdown # ECPay API Skill — Copilot 自訂指令 本專案使用綠界科技 ECPay API Skill 作為 AI 串接知識庫。 ## 知識庫位置 ECPay API Skill 安裝於 `.ecpay-skill/` 目錄: - 入口文件:`.ecpay-skill/SKILL.md`(決策樹、快速參考、文件索引) - 整合指南:`.ecpay-skill/guides/`(29 份深度指南) - API 規格索引:`.ecpay-skill/references/`(443 個官方 API 文件 URL) - PHP 範例:`.ecpay-skill/scripts/SDK_PHP/example/`(134 個驗證範例) ## 使用方式 當收到 ECPay / 綠界相關問題時: 1. 先讀取 `.ecpay-skill/SKILL.md` 了解決策樹和文件索引 2. 依決策樹路由到對應 guide(如 guides/01 AIO 金流、guides/02 站內付 2.0) 3. 生成程式碼前,參考 `.ecpay-skill/references/` 中的 URL 確認最新 API 規格 4. 加密實作參考 guides/13(CheckMacValue)和 guides/14(AES) ## 測試帳號 | 服務 | MerchantID | HashKey | HashIV | |------|-----------|---------|--------| | 金流 | 3002607 | pwFHCqoQZGmho4w6 | EkRm7iFT261dpevs | | 發票 | 2000132 | ejCk326UnaZWKisg | q9jcZX8Ib9LM8wYk | | 物流 | 2000132 | 5294y06JbISpM5x9 | v77hoKGq4kWxNNIS | ``` 4. 在 Visual Studio 中啟用 Custom Instructions: - **Visual Studio 2026**:**Tools** → **Options** → 展開 **All Settings** → **GitHub** → **Copilot** → **Copilot Chat** → 勾選 **Enable custom instructions to be loaded from .github/copilot-instructions.md files and added to requests** - **Visual Studio 2022**:**Tools** → **Options** → **GitHub** → **Copilot** → **Copilot Chat** 區段 → 勾選同名選項 ### 步驟 3:驗證安裝 開啟 Copilot Chat(點選 IDE 右上角的 **Copilot badge** → **Open Chat Window**,或按 **Ctrl+\\, C**),輸入: ``` 綠界 AIO 金流的測試 MerchantID 是多少? ``` 若回應包含 `3002607`,表示 ECPay API Skill 已成功載入。 ## 使用 Agent Mode(推薦) Visual Studio 2026 / 2022 v17.14+ 支援 **Agent Mode**,讓 Copilot 能自主完成多步驟任務,是串接 ECPay 的最佳方式。 ### 啟用 Agent Mode 1. 開啟 Copilot Chat 視窗 2. 在 Chat 視窗點選 **Ask** 模式下拉選單,切換為 **Agent** 3. 確認 Agent Mode 已啟用: - **Visual Studio 2026**:**Tools** → **Options** → **All Settings** → **GitHub** → **Copilot** → **Copilot Chat** → 勾選 **Enable Agent mode in the chat pane** - **Visual Studio 2022**:**Tools** → **Options** → **GitHub** → **Copilot** → **Copilot Chat** → 勾選同名選項 ### 使用範例 在 Agent Mode 下,直接用自然語言描述需求,Copilot 會自動建立計畫、編輯程式碼、執行終端機指令: ``` 請幫我用 C# 串接 ECPay AIO 信用卡一次付清, 測試環境,MerchantID=3002607, 需要完整的 CheckMacValue 計算和 ReturnURL 接收處理。 參考 .ecpay-skill/SKILL.md 和 .ecpay-skill/guides/01-payment-aio.md。 ``` ``` 幫我用 Python 串接 ECPay B2C 電子發票即時開立, 測試帳號 MerchantID=2000132,需要 AES 加解密和雙層錯誤檢查。 參考 .ecpay-skill/guides/04-invoice-b2c.md。 ``` ``` 我在串接站內付 2.0 時遇到 TransCode ≠ 1 的錯誤, 請根據 .ecpay-skill/guides/15-troubleshooting.md 幫我診斷原因。 ``` > 💡 **提示**:在提問中加上 `參考 .ecpay-skill/...` 可確保 Copilot 讀取正確的知識庫檔案。使用 `#file` 引用也能達到相同效果。 ### Agent Mode 可執行的動作 | 動作 | 說明 | |------|------| | 讀取 Skill 檔案 | 自動讀取 `.ecpay-skill/` 中的指南和範例 | | 產生程式碼 | 直接在編輯器中產出並套用程式碼 | | 執行終端指令 | 如 `dotnet build`、`npm install` 等(需確認後執行) | | 偵測錯誤並修正 | 偵測 build 錯誤或測試失敗後自動修正 | | 多步驟規劃 | 將複雜任務分解為可追蹤的步驟 | ## 使用 Prompt Files(可重用提示) 你可以將常用的 ECPay 串接提示儲存為 Prompt File,方便重複使用。 ### 建立 Prompt File 1. 建立目錄 `.github/prompts/`(如不存在) 2. 建立檔案,例如 `.github/prompts/ecpay-aio-payment.prompt.md`: ```markdown 請根據 #file:.ecpay-skill/SKILL.md 和 #file:.ecpay-skill/guides/01-payment-aio.md, 用 {{language}} 語言串接 ECPay AIO 全方位金流信用卡付款。 需求: - 測試環境(MerchantID=3002607) - 完整的 CheckMacValue SHA256 計算(參考 #file:.ecpay-skill/guides/13-checkmacvalue.md) - ReturnURL callback 接收處理(需回應 1|OK) - SimulatePaid=1 模擬付款 請同時提供注意事項和常見錯誤提醒。 ``` ### 使用 Prompt File 在 Copilot Chat 中輸入 `#prompt:ecpay-aio-payment` 或 `/ecpay-aio-payment`,即可載入已儲存的提示。 ## Ask Mode vs Agent Mode 使用建議 | 情境 | 建議模式 | |------|---------| | 快速查詢 ECPay 參數或錯誤碼 | **Ask** Mode | | 瞭解 AIO 和站內付 2.0 的差異 | **Ask** Mode | | 產出完整的串接程式碼 | **Agent** Mode | | 從零開始建立 ECPay 串接專案 | **Agent** Mode | | 除錯 CheckMacValue 或 AES 問題 | **Agent** Mode(可讀取程式碼並修正) | | 使用 MCP 工具 | **Agent** Mode(必須) | ## 常見問題 **Q:步驟 3 驗證時,Copilot 回應的 MerchantID 是 `2000132`,而不是 `3002607`?** 這是最常見的情況,代表 **Copilot 沒讀到你建立的 `.github/copilot-instructions.md`**,只能憑既有印象,回它預設知道的綠界通用範例帳號 `2000132`。 關鍵觀念:`2000132` 不是壞帳號,而是綠界**電子發票 / 物流**的測試帳號(也是網路上最常被引用的通用範例);**AIO 金流的正確測試 MerchantID 是 `3002607`**(見步驟 2 的測試帳號表格)。換言之,問題不在 Skill 內容,而在指令檔沒被載入。 > ⚠️ **最容易搞混的地方:系統裡會有「兩個同名」的 `copilot-instructions.md`,用途完全不同,請勿放錯或互相當成對方使用。** > > | 檔案位置 | 用途 | 內含測試帳號? | 該不該用 | > |----------|------|:---:|:---:| > | **你專案根目錄**的
`.github/copilot-instructions.md` | 告訴「自己專案」的 Copilot 如何使用 ECPay 知識庫,**表格內直接寫了金流 = `3002607`** | ✅ 有 | ✅ **這份才是你要依步驟 2「自己建立」的** | > | clone 下來的
`.ecpay-skill/.github/copilot-instructions.md` | 綠界**維護 Skill 這個 repo 本身**的內部開發指令(版本同步、驗證腳本…) | ❌ 沒有 | ❌ **請勿當成專案指令,也不需去動它** | > > Copilot **只會讀取「目前開啟方案(solution)最上層資料夾」**底下的 `.github/copilot-instructions.md`,**不會**自動去讀 `.ecpay-skill/.github/` 子目錄那一份;就算手動指定,那一份也沒有任何測試帳號。**正確做法是依步驟 2 在你自己專案根目錄「新建一份」**,再貼入指南提供的內容(含測試帳號表格)。 確認方式與下一題的排查清單相同。 **Q:Copilot Chat 沒有讀到 ECPay API Skill 的內容?** 1. 確認 `.github/copilot-instructions.md` 存在於**專案根目錄**(即目前 Visual Studio 開啟的方案最上層資料夾),**而不是** `.ecpay-skill/.github/` 子目錄那一份 2. 確認該檔內容是步驟 2 提供的版本(含測試帳號表格,金流 = `3002607`) 3. 確認已在 **Tools** → **Options** → **GitHub** → **Copilot** → **Copilot Chat** 勾選 **Enable custom instructions**(此選項預設可能未勾;未勾則 Visual Studio 完全不會載入該檔) 4. 確認 `.ecpay-skill/` 目錄位於專案根目錄下,且資料夾名稱(含開頭的點「.」)與 `copilot-instructions.md` 內所寫的路徑一致 5. 在提問中明確引用檔案來驗證:`綠界 AIO 金流的測試 MerchantID 是多少?請參考 #file:.ecpay-skill/SKILL.md`(若加 `#file` 會回 `3002607`、不加卻回 `2000132`,即可確認問題出在「自動載入」未設定好,知識庫本身正常) 6. 重新啟動 Visual Studio **Q:Agent Mode 選項沒有出現?** 1. 確認 Visual Studio 版本為 2026 (v18.0+) 或 2022 (v17.14+):**Help** → **About Visual Studio** 2. 確認已在 **Tools** → **Options** → **GitHub** → **Copilot** → **Copilot Chat** 勾選 **Enable Agent mode in the chat pane** 3. 確認 GitHub 帳號已登入且具備 Copilot 權限 4. 重新啟動 Visual Studio **Q:Free 方案的 50 次 Chat 夠用嗎?** 對於初次串接評估和基礎開發通常足夠。如果需要大量 AI 輔助開發,建議升級至 Copilot Pro(每月 USD $10)或 Business 方案。 **Q:跟 VS Code Copilot Chat 有什麼差異?** | 面向 | Visual Studio 2026 | VS Code | |------|:---:|:---:| | Custom Instructions | `.github/copilot-instructions.md` | 相同 | | Agent Mode | 支援(v18.0+ / v17.14+) | 支援 | | File-Specific Instructions | `.instructions.md` + `applyTo` glob | 相同 | | Prompt Files | `.prompt.md` 支援 | 相同 | | 右鍵 Copilot Actions | 支援(Explain/Fix/Generate/Tests/Optimize) | 支援 | | 自動生成 Instructions | `/generateInstructions` | `/create-instructions`(或 `/init`;等效功能,不同命令名) | | 儲存對話為 Prompt File | `/savePrompt` | `/create-prompt`(等效功能,不同命令名) | | 內建 Agent | @debug, @profiler, @test, @vs | 不同的內建 Agent | | NuGet MCP Server | 內建 | 不適用 | | 主要語言生態 | C# / .NET / C++ / VB | 多語言 | ## 相關資源 - [Visual Studio 2026 Copilot Chat 官方文件](https://learn.microsoft.com/en-us/visualstudio/ide/copilot-chat-context?view=visualstudio) - [Visual Studio Agent Mode 官方文件](https://learn.microsoft.com/en-us/visualstudio/ide/copilot-agent-mode?view=visualstudio) - [GitHub Copilot Custom Instructions](https://docs.github.com/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot) - [GitHub Copilot Free 方案說明](https://learn.microsoft.com/en-us/visualstudio/ide/copilot-free-plan?view=visualstudio) - [Visual Studio 2026 Release Notes](https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes)