- Create RegistrationService to register VS instances with WebAPI
- Registers on startup with: port, process ID, solution info
- Reads WebApiUrl from ConfigurationService
- Sends heartbeat every N seconds (configurable)
- Unregisters on shutdown
- Gracefully handles registration failures (VS extension works standalone)
- Update RoslynBridgePackage to use RegistrationService
- Creates BridgeServer and gets actual port used
- Registers with WebAPI using discovered port
- Cleans up registration on disposal
This enables the WebAPI middleware to discover and route requests to
the correct Visual Studio instance based on solution path, port, or PID.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update BridgeServer to try multiple ports sequentially
- Reads DefaultPort and MaxPortRange from ConfigurationService
- Tries ports from DefaultPort to DefaultPort+MaxPortRange
- Updates _port field to the port that successfully starts
- Throws exception if no available ports found
- Make _port field mutable to store discovered port
- Add public Port property to expose the actual port being used
- Make startPort parameter optional (nullable), defaults to config value
- Add WriteRawResponseAsync helper method for future use
This allows multiple Visual Studio instances to run simultaneously,
each with their own Roslyn Bridge server on different ports.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add appsettings.json with configurable settings:
- WebApiUrl: URL of the WebAPI middleware (default: http://localhost:5001)
- DefaultPort: Starting port for VS instances (default: 59123)
- MaxPortRange: Number of ports to try (default: 10)
- HeartbeatIntervalSeconds: Heartbeat interval (default: 60)
- Create ConfigurationService singleton to load settings
- Loads from appsettings.json in extension directory
- Falls back to sensible defaults if file missing
- Provides easy property access
- Update RoslynBridge.csproj to include:
- ConfigurationService.cs in compilation
- appsettings.json as content (copied to output and included in VSIX)
- System.Data reference for future use
This allows users to customize extension behavior without recompiling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>