Overview
The NuGet compatibility checker analyzes your project’s package references and:- Validates compatibility with your target framework
- Checks version availability on NuGet.org
- Suggests correct versions when incompatibilities are found
- Recommends alternatives for deprecated or incompatible packages
- Analyzes transitive dependencies (dependencies of dependencies)
- Suggests framework upgrades when all packages support newer versions
The compatibility checker combines local rules with real-time NuGet API lookups to provide accurate, up-to-date compatibility information.
How It Works
Three-Tier Checking System
- Local Rules - Built-in compatibility rules for popular packages
- NuGet API - Real-time lookups for accurate version data
- Caching - Performance optimization with configurable expiry
Issue Types
The checker identifies three types of compatibility issues:Incompatible
Package cannot run on the target framework.Severity: Error (red squiggly)
Version Mismatch
Package version doesn’t exist or doesn’t match framework.Severity: Warning (yellow squiggly)
Deprecated
Package or version is deprecated.Severity: Warning (yellow squiggly)
Enhanced Compatibility Reports
Build Buddy provides detailed compatibility reports with actionable suggestions:Example Reports
NuGet API Integration
The checker queries the official NuGet.org API for real-time compatibility data:Package Version Lookup
API requests are subject to a configurable timeout (default: 5000ms). If the API is unavailable, Build Buddy falls back to local compatibility rules.
Alternative Package Suggestions
Build Buddy knows about modern alternatives for deprecated packages:| Legacy Package | Modern Alternative | Reason |
|---|---|---|
Microsoft.AspNet.Mvc | Microsoft.AspNetCore.Mvc | Modern ASP.NET Core MVC for .NET Core/.NET 5+ |
System.Web.Mvc | Microsoft.AspNetCore.Mvc | Modern ASP.NET Core MVC for .NET Core/.NET 5+ |
EntityFramework | Microsoft.EntityFrameworkCore | Modern Entity Framework Core for .NET Core/.NET 5+ |
Newtonsoft.Json | System.Text.Json | Built-in JSON serialization in .NET Core/.NET 5+ |
Framework Upgrade Suggestions
When all your packages support a newer framework, Build Buddy suggests upgrading:Upgrade Path Examples
Built-in Compatibility Rules
Build Buddy includes comprehensive rules for popular .NET packages:ASP.NET Core
Entity Framework
- EntityFramework - .NET Framework only (legacy)
- Microsoft.EntityFrameworkCore - .NET Standard 2.0+ (modern)
Testing Frameworks
- xunit - .NET Standard 1.1+
- NUnit - .NET Standard 1.6+
- Moq - .NET Standard 2.0+
Popular Libraries
- Newtonsoft.Json - All frameworks from .NET 2.0+
- Serilog - .NET Standard 1.5+
- AutoMapper - .NET Standard 2.0+
- MediatR - .NET Standard 2.0+
View all built-in compatibility rules
View all built-in compatibility rules
Build Buddy includes over 30 compatibility rules for:
- ASP.NET Core packages
- Entity Framework (classic and Core)
- Microsoft.Extensions.* packages
- Blazor components
- SignalR
- gRPC
- Testing frameworks
- Popular third-party libraries
nugetCompatibilityChecker.ts:561 for the complete list.Inline Diagnostics
Compatibility issues appear directly in your project files with:- Squiggly underlines (red for errors, yellow for warnings)
- Hover tooltips with detailed information
- Quick fixes where applicable

Transitive Dependency Checking
Build Buddy can check dependencies of your dependencies:Configuration
Customize the compatibility checker behavior:settings.json
Configuration Options
Enable or disable all NuGet compatibility checking.
Enable real-time NuGet API lookups. Disable to use only local rules.
Cache compatibility check results for better performance.
Cache expiration time in seconds (default: 1 hour).
List of package names or patterns to ignore. Supports wildcards (e.g.,
Internal.*).NuGet API request timeout in milliseconds.
Performance Optimization
Caching Strategy
The compatibility checker uses intelligent caching:packageName|version|targetFramework
Ignored Packages
You can ignore specific packages or patterns:Example Ignore Patterns
Framework Matching
Build Buddy understands .NET framework semantics:Framework Types
- net - Modern .NET (5.0, 6.0, 7.0, 8.0)
- netcoreapp - .NET Core (1.0-3.1)
- netframework - .NET Framework (4.0-4.8)
- netstandard - .NET Standard (1.0-2.1)
Best Practices
Keep API enabled for accuracy
Keep API enabled for accuracy
While local rules cover many packages, the NuGet API provides the most accurate and up-to-date compatibility information. Keep
nugetApiEnabled: true for best results.Use caching in large projects
Use caching in large projects
Enable caching (
nugetCacheEnabled: true) to avoid repeated API calls. Set a reasonable expiry time (1-24 hours) based on your needs.Ignore internal packages
Ignore internal packages
Add your company’s internal packages to
nugetIgnoredPackages to avoid unnecessary API calls and false warnings.Act on upgrade suggestions
Act on upgrade suggestions
When Build Buddy suggests a framework upgrade, consider it seriously. Modern frameworks offer better performance, security, and features.
Related Topics
- Project Management - How Build Buddy manages project files
- File Watching - Automatic compatibility checks when files change