← 返回技術博客

Visual Studio 開發者轉型 Mac 實戰:首日環境清單、IDE 選型與鍵位遷移

Visual Studio 開發者轉型 Mac 實戰:首日環境清單、IDE 選型與鍵位遷移

公司發了 MacBook,你仍按 <kbd>Ctrl+S</kbd> 儲存、在檔案總管裡找方案——肌肉記憶比工具鏈更難遷。本文按「首日能編譯、首週能提 PR、首月能跑 CI」三階段給出可執行清單。

如果你剛拿到 MacBook,第一反應仍是去「開始功能表」找 Visual Studio,或是在檔案總管裡雙擊 .sln——這表示最難遷的不是 SDK,而是肌肉記憶。本文面向 在 Windows 上使用 Visual Studio / Visual Studio Code 多年的 .NET、C++ 或全端開發者,依「首日能編譯、首週能提 PR、首月能跑 CI」三階段,給出可複製的環境清單;文末說明何時把 iOS 建置 offload 到雲端 Mac

首日兩小時:讓終端機、Git 與 dotnet 先跑起來

別一上來就裝完整 Xcode。按下面順序,通常 120 分鐘內 能恢復「開啟方案 → F5 偵錯」的主路徑。

1. Command Line Tools 與 Homebrew

xcode-select --install          # 彈窗確認;僅需 Git、clang 時夠用
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Apple Silicon 上 Homebrew 前綴是 /opt/homebrew(Intel 為 /usr/local)。裝完後用 brew doctor 確認無報錯。

2. .NET SDK 與常用 CLI

brew install --cask dotnet-sdk
brew install git gh jq fzf ripgrep
dotnet --info                   # 確認 SDK 版本與 RID(osx-arm64)

團隊若鎖定 SDK 版本,在專案根目錄加 global.json

{
  "sdk": {
    "version": "8.0.400",
    "rollForward": "latestFeature"
  }
}

3. Git 身分與換行符

git config --global user.name "你的名字"
git config --global user.email "you@company.com"
git config --global core.autocrlf input   # Mac 端建議 input,避免 Windows 同事收到整庫換行 diff

踩坑記錄: 從 Windows 克隆的儲存庫若出現「所有檔案 modified」,九成是 core.autocrlf.gitattributes 不一致。首日先統一團隊規範,比日後洗歷史便宜。


IDE 怎麼選:Rider、VS Code 還是保留 Windows?

微軟已結束 Visual Studio for Mac 支援(2024-08)。現實選項如下:

工具適合誰遷移成本備註
JetBrains Rider原 Visual Studio 重度使用者、ReSharper 派方案結構、重構、NuGet、偵錯體驗最接近 VS;付費
VS Code + C# Dev Kit已習慣 VS Code、輕量儲存庫很低免費;大型方案索引與重構弱於 Rider
VS Code + Cursor以 AI 輔助編碼為主與 VS Code 擴充功能生態相容;Agent 會頻繁呼叫終端機
完整 XcodeiOS / macOS / MAUI iOS 目標僅在做 Apple 平台時必須;體積大、更新頻繁
Parallels / 遠端 Windows舊版 WinForms、WPF、特定 VS 外掛應急可以,不建議當日常主力

建議決策:

  • ASP.NET Core / API / 主控台 → Rider 或 VS Code 二選一即可。
  • .NET MAUI 且要發 iOS → 本機 Rider + Xcode(或 VS Code + Xcode CLI);Android 模擬器在 Mac 上可直接跑。
  • 團隊統一 ReSharper 規則 → Rider 授權與公司 JetBrains 帳號對齊。

鍵位與視窗管理:Ctrl 肌肉記憶如何三天切換

Mac 上 取代 Windows 的 Ctrl 負責「儲存、複製、貼上、復原」。對照表建議列印貼在螢幕旁:

動作Windows (VS)macOS
儲存Ctrl+S+S
復原Ctrl+Z+Z
註解行Ctrl+K, Ctrl+C+/(VS Code/Rider 可改)
偵錯F5+F5(需勾選功能鍵)
搜尋全方案Ctrl+Shift+F+Shift+F
切換應用程式Alt+Tab+Tab

視窗管理 是第二痛點:建議安裝 Rectangle(免費)或 Magnet,用 ++方向鍵 實現 Win11「貼靠版面配置」。多顯示器時,系統設定 → 顯示器 → 獨立顯示器空間,避免全螢幕應用在螢幕間亂跳。


終端機、Shell 與 Docker:從 PowerShell 到 zsh

建議最小套件

brew install starship eza bat fd
# ~/.zshrc 片段
eval "$(starship init zsh)"
alias ls='eza --icons'
alias cat='bat'
PowerShell 使用者
可 `brew install powershell`,但團隊腳本多為 bash/zsh;長期仍建議把個人 alias 遷到 zsh。
Docker Desktop
與 Windows 版類似;Apple Silicon 注意映像架構(linux/arm64 vs amd64)。資料庫容器化後,連線字串裡的 localhost 在 Mac 上同樣有效。
資料庫 GUI
Azure Data Studio、DBeaver、TablePlus 均有 macOS 版;SSMS 無原生 Mac,用 Azure Data Studio 替代。

.NET MAUI 與 iOS:本機開發、建置分流

MAUI 跨平台專案在 Mac 上的典型分工:

  1. Rider / VS Code:編輯共用 UI 與業務邏輯。
  2. 本機模擬器:偵錯 iOS/Android 介面(需 Xcode + Android Studio 模擬器)。
  3. Release Archivedotnet publish 觸發 Xcode 工具鏈;CI 上更穩的是固定 macOS 節點。

若你來自 僅 Windows 的 Visual Studio,第一次打 iOS 套件會在簽章、Provisioning Profile 上卡很久——這與 IDE 無關,是 Apple 流程。可參考 Apple Developer — Xcode 支援 核對 SDK 與 macOS 版本對應關係。

混合工作流: 本機 16–24GB 記憶體的 MacBook 做日常編碼;夜間全量 Archive、多分支 CI 交給雲端 Mac mini,避免筆電風扇整夜轉、DerivedData 占滿磁碟。SSH 跑腳本,偶發憑證問題再 VNC——見 說明中心

首週清單:團隊協作時別漏項

類別 檢查項
身分與金鑰 SSH key 加到 GitHub/GitLab;gh auth login 或公司 SSO
套件來源 nuget.config 指向內部 feed;dotnet nuget list source
憑證 Apple 開發憑證匯出 .p12 或在 CI 用 Base64 secret
環境變數 direnv.env 不入庫;用 1Password / 公司 Vault
格式化 editorconfig + dotnet format 與 Windows 同事對齊
預提交 husky / pre-commit 在 Mac 上同樣可跑

Visual Studio 功能在 Mac 上的落點

VS (Windows) 習慣Mac 等價做法
方案總管Rider Solution 視窗 / VS Code Explorer
NuGet 套件管理員 UIRider NuGet 工具視窗;或 CLI dotnet add package
伺服器總管 / SQLAzure Data Studio、Rider 資料庫工具
IIS Expressdotnet run Kestrel;Docker 反向代理
WinForms 設計工具無原生 Mac 設計工具 → Windows VM 或重寫為 Web/MAUI
測試總管Rider 測試視窗;dotnet test
效能分析器dotnet-trace、Instruments(原生)、JetBrains dotTrace

何時用雲端 Mac,而不是繼續堆本機設定

下面場景在 Visual Studio 遷 Mac 的團隊裡很常見:

  • Windows 仍是公司標準桌面,僅行動組需要 macOS 建置 → 租獨享 Mac,Windows 上 SSH 觸發流水線。
  • 多 Xcode 版本矩陣(同時維護 iOS 16/17/18 客戶端)→ 本機裝多個 Xcode 占磁碟;雲端按節點拆分更乾淨。
  • 短期客戶專案,三個月後要交 iOS 套件 → 日租/週租比買 Mac mini 回本快。

不確定時,在採購第二台「專門建置用 Mac」之前,用日租跑一輪真實儲存庫的 xcodebuild archive,再對比 36 個月 TCO。站內另有 GitHub Actions macOS Runner 節點成本 一文可對照。


收束:遷移的是工作流,不是某一個 IDE

Visual Studio 開發者轉 Mac,首日 搞定 Homebrew、dotnet、Git 與 IDE 選型;首週 統一換行符、金鑰與團隊腳本;首月 把 iOS CI 與重編譯從筆電剝離到穩定 macOS 節點。工具會變(Rider、VS Code、Cursor),但「能編譯、能偵錯、能交付」的節奏不應被打斷。

若你正在設定 MAUI + iOS 流水線,本機保持輕量,把 Archive 交給雲端 Mac——算力用在編譯上,而不是閒置在抽屜裡。

本機寫程式,雲端 Mac 跑 iOS 建置

Visual Studio 遷到 Mac 後,.NET 日常開發可在本機完成;MAUI / 原生 iOS 的 Archive 與 CI 更適合 offload 到獨享雲端 Mac mini。SSH 接入、按日/週/月計費,無需為偶爾建置再買第二台硬體。

不確定環境是否夠用?先用日租跑一輪真實 `xcodebuild`,再決定本機要裝多少 Xcode 元件。

延伸閱讀

常見問題

Mac 上還有 Visual Studio 嗎?

微軟已停止 Visual Studio for Mac(2024 年 8 月結束支援)。.NET 開發者首選 JetBrains RiderVS Code + C# Dev Kit;需要完整 Windows 工具鏈時可保留 Parallels/遠端 Windows 機器,但不建議作為日常主力。

Ctrl 和 Cmd 怎麼快速適應?

系統設定 → 鍵盤 → 勾選「將 F1、F2 等鍵用作標準功能鍵」按需調整;在 Rider/VS Code 裡可安裝 IntelliJ IDEA KeymapVisual Studio Keymap 擴充。前三天刻意用外接鍵盤貼一張 Ctrl→⌘ 對照條,比背快捷鍵表更有效。

.NET 專案在 Mac 上能原樣跑嗎?

ASP.NET Core、主控台、類別庫通常 dotnet restore && dotnet run 即可。注意路徑分隔符、換行符(core.autocrlf)和僅 Windows 的 API(如部分 WMI)。MAUI iOS 目標必須在 macOS + Xcode 環境建置,Android 可在 Mac 上完整開發。

必須裝 Xcode 嗎?

只做 .NET / Web / 後端:不必裝完整 Xcode,裝 Xcode Command Line Toolsxcode-select --install)即可滿足 Git、編譯原生依賴。要做 iOS 模擬器、Archive 或 Swift 混編,才需要完整 Xcode(體積 30GB+)。

終端用 iTerm 還是系統 Terminal?

二者皆可。習慣 PowerShell 的開發者推薦 iTerm2 + Homebrew zsh + starship,並設定 lsezacatbat 等別名。團隊腳本若依賴 bash,在 shebang 寫 #!/usr/bin/env bash 避免 zsh 語法差異。

什麼時候該租雲端 Mac 而不是本地配環境?

當你需要 7×24 iOS CI、多版本 Xcode 矩陣、或 Windows 主力機 + 偶爾簽名上架時,本地 Mac 可能閒置或配置衝突。按需租用獨享 Mac mini 跑 xcodebuild / 自建 Runner,本機繼續用 Rider 寫程式,比每人配一台建置機更省預算。

限時優惠 →