dotnet/efcore · error · OperationException
Unable to find provider assembly
Error message
Unable to find provider assembly '{assemblyName}'. Ensure the name is correct and it's referenced by the project. What it means
OperationException CannotFindRuntimeProviderAssembly thrown when Assembly.Load(new AssemblyName(provider)) fails for the configured database provider assembly. The provider runtime package is not present where the tools can load it.
Solutions
- Install the provider package into the startup project: `dotnet add package Microsoft.EntityFrameworkCore.SqlServer`.
- Run `dotnet restore` to ensure the assembly is on disk.
- Verify the package name spelling used by Use<Provider> matches an installed package.
- Align provider version with the EF Core version (e.g. both 9.0.x).
Example fix
# before - provider package missing in startup project > dotnet ef migrations add Init # after > dotnet add src/MyApp.Api package Microsoft.EntityFrameworkCore.SqlServer > dotnet restore > dotnet ef migrations add Init
Defensive patterns
Strategy: validation
Validate before calling
try { Assembly.Load(new AssemblyName(providerName)); }
catch { throw new InvalidOperationException($"Provider assembly '{providerName}' is not loadable; add the NuGet package and restore."); } Type guard
static bool ProviderAssemblyIsReferenced(Assembly app, string name)
=> app.GetReferencedAssemblies().Any(a => a.Name == name);
Try / catch
try { /* design-time op */ }
catch (OperationException ex) when (ex.Message.Contains("Unable to find provider assembly"))
{ /* dotnet add package <Provider.EFCore>; dotnet restore */ } Prevention
- Add the provider package to the startup project, not just the data project.
- Keep provider and EF Core versions in lockstep.
- Restore packages before running EF tools.
When it happens
Trigger: UseSqlServer/UseNpgsql/etc. names a provider whose runtime assembly cannot be loaded — package not referenced, wrong package name, or version not restored. Only thrown when throwOnError is true (the provider is required, not merely referenced).
Common situations: Provider NuGet package added to the wrong project (startup vs data project), a typo in a custom provider name, version mismatch between EFCore and the provider package, or restore did not complete.
Related errors
- The exception ' ' was thrown while attempting to find…
- Unable to find expected assembly attribute…
- Compilation failed with errors:
- Failed to load project for query precompilation. Project
- Metadata model returned should not be 'null'. Provider
AI-assisted analysis of dotnet/efcore@3a2006ef56 (2026-08-11).
Data as JSON: /api/errors/9f80472a42bf51c7.
Report an issue: GitHub.
Appendix: source
Thrown at src/EFCore.Design/Design/Internal/DesignTimeServicesBuilder.cs:169
_reporter.WriteVerbose(DesignStrings.FindingProviderServices(provider));
Assembly providerAssembly;
try
{
providerAssembly = Assembly.Load(new AssemblyName(provider));
}
catch (Exception ex)
{
var message = DesignStrings.CannotFindRuntimeProviderAssembly(provider);
if (!throwOnError)
{
_reporter.WriteVerbose(message);
return;
}
throw new OperationException(message, ex);
}
var providerServicesAttribute = providerAssembly.GetCustomAttribute<DesignTimeProviderServicesAttribute>();
if (providerServicesAttribute == null)
{
var message = DesignStrings.CannotFindDesignTimeProviderAssemblyAttribute(
provider);
if (!throwOnError)
{
_reporter.WriteVerbose(message);
return;
}
throw new InvalidOperationException(message);
}
View on GitHub (pinned to 3a2006ef56)