ความแตกต่างของ Build Actions
| Action | คำอธิบาย | ใช้เมื่อไหร่ |
| Build | Incremental Build - Compile เฉพาะไฟล์ที่เปลี่ยนแปลง | Development ปกติ เร็วที่สุด |
| Rebuild | Clean + Build - ลบ Output ทั้งหมด แล้ว Build ใหม่ทั้ง Solution | แก้ปัญหา Cache, Reference Error, Switch Branch |
| Clean | ลบไฟล์ Compiled (bin/obj) ทั้งหมด ไม่ Build | ก่อน Commit, เปลี่ยน Config, Free Disk Space |
รายละเอียด
Build (Incremental)
- ตรวจสอบ Timestamp ของ Source vs Output
- Compile เฉพาะ Project/File ที่ Dirty
- เร็วที่สุดสำหรับ Development Loop
- Shortcut: Ctrl+Shift+B
Rebuild (Full Rebuild)
- Rebuild = Clean + Build
- ลบ
bin และ obj ของทุก Project
- Compile ทุกอย่างใหม่จากศูนย์
- ช้ากว่า Build มาก
- แก้ปัญหา: Stale Cache, Assembly Mismatch, Generated Code ไม่ Update
Clean
- ลบ Output Files (.exe, .dll, .pdb, .xml docs) ใน bin/obj
- ไม่ Compile ใหม่
- ใช้ก่อน Check-in / Package / Deploy
Best Practice Workflow
- Daily Dev: Build (Incremental)
- Pull Latest / Switch Branch: Rebuild
- Before Commit / PR: Clean → Rebuild → Run Tests
- CI/CD Pipeline: Clean → Build (Fresh Environment)
- Weird Errors (Metadata, Reference): Clean → Rebuild
Command Line (dotnet CLI)
dotnet build # Incremental
dotnet build --no-incremental # Force Rebuild
dotnet clean # Clean only
dotnet rebuild # Clean + Build (alias)
Visual Studio Shortcuts
- Ctrl+Shift+B - Build Solution
- Ctrl+Alt+F7 - Rebuild Solution
- Right-click Solution → Clean / Rebuild