Gemini CLI 提示詞 for .NET projects

摘要: 此筆記整理了幾個我用來重構和改進 .NET 專案的 Gemini CLI 提示詞。

背景知識

您需要先了解什麼是 Gemini CLI,而且知道如何安裝和啟動它

Note

雖然本文是針對 Gemini CLI 而寫,但提示詞應該也適用於其他具備相似能力的 AI agents。

限制與注意事項

寫作此文時,Gemini CLI 並未具備偵測檔案字元編碼且自動「無損」轉換成 UTF-8 編碼的能力。它會將修改過的檔案都一律儲存成 UTF-8 編碼,這可能造成某些非 UTF-8 編碼的檔案中的字元變成亂碼。

因此,在給 Gemini CLI 改造程式碼之前,請務必先把那些檔案的字元編碼改為 UTF-8。具體做法可參考這篇文章:批次轉換檔案編碼(Big5 至 UTF-8)

Important

由 AI 工具改動的程式碼一定要逐一 review 其修改結果。例如以 Git Diff 逐一查看修改前後的差異。

以下各節為提示詞。使用前,請先將當前路徑切換至你的 .NET 專案或 repository 的所在目錄,然後再啟動 Gemini CLI。

第一步:總結專案

先用以下提示來讓 AI agent 替你的專案進行程式架構的分析與總結:

分析此 solution 的程式架構,列出可改進之處。

然後,從 AI 總結的輸出結果當中,再逐條針對個別改善建議對 AI agent 提出具體的問題。或者,您也可以參考以下各小節的常用提示,直接複製或稍加修改後餵給 AI agent。

Project and package

本節包含專案與套件管理相關的提示。

使用 Central Package Management

使用 Central Package Management (CPM) 來統一管理相依套件的版本。

See also: Central Package Management (CPM)

下圖展示了此提示實際執行的輸出結果:

最後,Gemini CLI 會問你是否可以真的開始修改你的檔案:

放心的話,可以選擇 "Yes, allow always",即一路開綠燈讓 Gemini CLI 一口氣把工作全部執行完畢。

Target framework

更新目標框架為 net9.0,並修正不相容的 API。

找出未使用的 NuGet 套件

分析此專案,找出可能未被使用到的 NuGet 套件並列出清單。

CI/CD

建立 GitHub Actions workflow 來建置和發布此專案。
檢查 GitHub Actions workflow,看看有沒有不恰當的地方,例如打包 package 時不應該連同測試專案的 DLL 也一併打包和發布。

使用 MinVer

使用 MinVer 套件來自動管理此專案的建置與發布時的版本編號,並且視需要修改 GitHub Actions workflow。

Code readability

本節包含程式碼可讀性相關的提示。

File-scoped namespaces

轉換此專案中所有的 C# 檔案為 file-scoped namespaces,以減少巢狀。

重構方法

重構 [檔案路徑] 中的 [方法名稱] 方法,以提高可讀性和降低圈複雜度 (cyclomatic complexity)。

格式化程式碼

執行 dotnet format 命令來自動化程式碼排版,使其風格保持一致。

產生註解

為 [檔案路徑] 內的 [類別名稱] 中所有 public 方法和屬性產生 XML 文件註解 (XML documentation comments)。

Unit tests

為此專案加入單元測試。

為特定方法產生單元測試:

閱讀 [檔案路徑] 中的 [類別名稱] 類別,並為 [方法名稱] 方法編寫一個 xUnit 或 NUnit 的單元測試檔案。

曾經,Gemini 幫我生成的單元測試沒有辦法通過測試。查看了那些失敗的測試函式,全都是跟加解密演算法有關的,像是 DES、AES 等等。也許可以反覆用不同的提示令 AI 修正測試程式直到可以通過測試,當時我的選擇是手動去修改它生成的單元測試,並自行驗證,直到全都通過測試。

Optimizations

本節包含程式效能優化相關的提示。

使用 async/await

分析 [檔案路徑],將同步的 I/O 操作 (如 File.ReadAllText, HttpClient.GetAsync().Result) 改為非同步的 async/await 模式。

使用 StringBuilder

找出 [檔案路徑] 中在迴圈內使用 + 或 += 進行字串串接的地方,並將其重構為使用 StringBuilder。

Best practices

本節包含最佳實踐的提示。

啟用 Nullable 參考型別

在 [專案檔.csproj] 中啟用可為 Null 參考型別 (Nullable Reference Types),然後修復因此產生的編譯警告。

先這樣,有新的再補上。

Keep coding with AI 😊

Last modified: 2025-07-02