{"record":{"id":"9f80472a42bf51c7","repo":"dotnet/efcore","slug":"unable-to-find-provider-assembly-assemblyname","errorCode":null,"errorMessage":"Unable to find provider assembly '{assemblyName}'. Ensure the name is correct and it's referenced by the project.","messagePattern":"Unable to find provider assembly '(.+?)'\\. Ensure the name is correct and it's referenced by the project\\.","errorType":"exception","errorClass":"OperationException","httpStatus":null,"severity":"error","filePath":"src/EFCore.Design/Design/Internal/DesignTimeServicesBuilder.cs","lineNumber":169,"sourceCode":"        _reporter.WriteVerbose(DesignStrings.FindingProviderServices(provider));\n\n        Assembly providerAssembly;\n        try\n        {\n            providerAssembly = Assembly.Load(new AssemblyName(provider));\n        }\n        catch (Exception ex)\n        {\n            var message = DesignStrings.CannotFindRuntimeProviderAssembly(provider);\n\n            if (!throwOnError)\n            {\n                _reporter.WriteVerbose(message);\n\n                return;\n            }\n\n            throw new OperationException(message, ex);\n        }\n\n        var providerServicesAttribute = providerAssembly.GetCustomAttribute<DesignTimeProviderServicesAttribute>();\n        if (providerServicesAttribute == null)\n        {\n            var message = DesignStrings.CannotFindDesignTimeProviderAssemblyAttribute(\n                provider);\n\n            if (!throwOnError)\n            {\n                _reporter.WriteVerbose(message);\n\n                return;\n            }\n\n            throw new InvalidOperationException(message);\n        }\n","sourceCodeStart":151,"sourceCodeEnd":187,"githubUrl":"https://github.com/dotnet/efcore/blob/3a2006ef569de08368d59db5e1468aa8f407e4f8/src/EFCore.Design/Design/Internal/DesignTimeServicesBuilder.cs#L151-L187","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","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)."],"exampleFix":"# before - provider package missing in startup project\n> dotnet ef migrations add Init\n\n# after\n> dotnet add src/MyApp.Api package Microsoft.EntityFrameworkCore.SqlServer\n> dotnet restore\n> dotnet ef migrations add Init","handlingStrategy":"validation","validationCode":"try { Assembly.Load(new AssemblyName(providerName)); }\ncatch { throw new InvalidOperationException($\"Provider assembly '{providerName}' is not loadable; add the NuGet package and restore.\"); }","typeGuard":"static bool ProviderAssemblyIsReferenced(Assembly app, string name)\n    => app.GetReferencedAssemblies().Any(a => a.Name == name);\n","tryCatchPattern":"try { /* design-time op */ }\ncatch (OperationException ex) when (ex.Message.Contains(\"Unable to find provider assembly\"))\n{ /* dotnet add package <Provider.EFCore>; dotnet restore */ }","preventionTips":["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."],"tags":["design-time","ef-tools","provider","assembly-load","nuget"],"backgroundTag":null,"analyzedSha":"3a2006ef569de08368d59db5e1468aa8f407e4f8","analyzedAt":"2026-08-11T23:42:04.146Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}