🔄 Auto Project Reloader
A Visual Studio extension that automatically reloads projects when their project files are modified externally, such as after a TFVC "Get Latest" or Azure DevOps sync operation.
❗ The Problem
When working with Team Foundation Version Control (TFVC) or other source control systems, performing a "Get Latest" operation that modifies project files (.csproj, .vbproj, etc.) triggers Visual Studio to display a prompt requiring manual intervention:
"{ProjectName}.csproj has changed on disk. Close the editor and reopen it."
This interrupts your workflow and requires manual intervention for each changed project.
✅ The Solution
Auto Project Reloader automatically detects when project files change on disk and reloads them without prompting. It:
- Monitors all loaded projects in your solution for file changes
- Automatically unloads and reloads changed projects
- Preserves open document editors during the reload process
- Works silently in the background
✨ Features
- Automatic Reload: Projects reload instantly when changed — no manual steps required
- Build-Aware: Defers automatic reloads while a build is in progress, then reloads once the build finishes
- Manual Reload: Right-click context menu to reload projects, folders, or entire solution
- Preserves Open Files: Your open editors stay intact during reload
- Multiple Project Types: Supports
.csproj, .vbproj, .fsproj, .vcxproj, and .proj files
- Configurable Logging: View extension activity in the Output window
- Dynamic Monitoring: Automatically tracks projects as they are added/removed from the solution
📦 Installation
Install within Visual Studio's Extension Manager or download and install directly from the Visual Studio Marketplace.
⚙️ Configuration
📋 Logging Options
Configure logging verbosity via Tools > Options > Auto Project Reloader > General:
| Log Level |
Description |
| None |
No logging output |
| Error |
Only error messages |
| Warning |
Warnings and errors |
| Info |
Standard messages (default) |
| Verbose |
All messages including debug output |
👁️ Viewing Logs
- Open View > Output (or press
Ctrl+Alt+O)
- Select Auto Project Reloader from the "Show output from" dropdown
🔧 How It Works
⚡ Automatic Reload
- When a solution is opened, the extension subscribes to file change events for all project files
- When an external process (like TFVC or Azure DevOps) modifies a project file, the extension detects the change
- The project is automatically unloaded and reloaded using Visual Studio's
IVsSolution4 API
- Visual Studio preserves open documents during the reload process
You can also manually reload projects by right-clicking in Solution Explorer:
- On a project: Right-click > "Reload Project" to reload that specific project
- On multiple projects: Select multiple projects, right-click > "Reload Project(s)"
- On a solution folder: Right-click > "Reload Project(s)" to reload all projects in that folder
- On the solution node: Right-click > "Reload All Projects" to reload every project in the solution
🛡️ Build-Aware Reload Deferral
Unloading and reloading a project while Visual Studio is building or running tests would abort the active operation, discard test results, and remove tests from Test Explorer until rediscovery completes. To avoid this disruption, the extension checks whether the build manager is busy before reloading:
- If the build manager reports busy (build or test-related build), the reload is deferred and queued.
- A background timer retries every 2 seconds until the operation finishes.
- Multiple file changes for the same project during an active operation are coalesced into a single deferred reload.
- Once the operation completes, the project is automatically reloaded.
⚠️ Unsaved Changes
If a project file is open in an editor with unsaved changes when a reload is triggered (e.g., after a Find and Replace in .csproj files), the extension automatically saves the document before reloading to prevent the "conflict with unsaved changes" warning.
📋 Requirements
- Visual Studio 2022 (17.0 or later)
- .NET Framework 4.7.2
📝 Version History
v1.0.214.10 (February 14th, 2026)
- Automatically save dirty project files before reload to prevent the "conflict with unsaved changes" warning
v1.0.213.9 (February 13th, 2026)
- Defer automatic project reload while a build is in progress to avoid interrupting builds
v1.0.212.7 (February 12th, 2026)
- Fixed infinite reload loop caused by directory monitoring reacting to Visual Studio's own file changes during project unload/reload
v1.0.212.6 (February 12th, 2026)
- Fixed automatic reload not triggering during TFVC "Get Latest" operations by adding directory-level change monitoring
v1.0.206.4 (February 6th, 2026)
- Improve logging and diagnostics for project/solution events
v1.0.205.3 (February 5th, 2026)
- Improved logging and reload logic
- Added support for reloading a solution
- Explicitly saving and re-opening open documents when reloading projects
v1.0.205.2 (February 5th, 2026)
- Initial release
- Automatic project reload on external file changes
- Right-click context menu to manually reload projects
- Support for reloading individual projects, multiple selected projects, solution folders, or entire solution
- Configurable logging via Tools > Options
- Support for .csproj, .vbproj, .fsproj, .vcxproj, and .proj files
⭐⭐⭐⭐⭐ Rate and Review
Has this extension helped you at all?
If so, please rate and share it.
Thanks! 😄