'SwashBuckle.AspNetCore.Cli "No service for type ISwaggerProvider has been registered" Error

I have a WebApi Project in .Net 5 and have already been using Swagger with default setup (services.AddSwaggerGen() in ConfigureServices method & app.UseSwagger() and app.UseSwaggerUI() in Configure method in Startup.cs) without any issues.

Now I decided to create Swagger Files via Swashbuckle.AspNetCore.Cli. I created manifest file: .net new tool-manifest

and then installed Swashbuckle.AspNetCore.Cli:dotnet tool install --version 6.2.3 Swashbuckle.AspNetCore.Cli

All is fine until here. Also checked to see if it is working via dotnet swagger tofile --help, and it is.

Now when I want to create json file via dotnet swagger tofile --output api.json bin\Debug\net5.0\MyApiApi.dll v1, I get

System.InvalidOperationException: No service for type 'Swashbuckle.AspNetCore.Swagger.ISwaggerProvider' has been registered. at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Swashbuckle.AspNetCore.Cli.Program.<>c.b__0_4(IDictionary2 namedArgs) in C:\projects\ahoy\src\Swashbuckle.AspNetCore.Cli\Program.cs:line 82 at Swashbuckle.AspNetCore.Cli.CommandRunner.Run(IEnumerable1 args) in C:\projects\ahoy\src\Swashbuckle.AspNetCore.Cli\CommandRunner.cs:line 68 at Swashbuckle.AspNetCore.Cli.CommandRunner.Run(IEnumerable`1 args) in C:\projects\ahoy\src\Swashbuckle.AspNetCore.Cli\CommandRunner.cs:line 59 at Swashbuckle.AspNetCore.Cli.Program.Main(String[] args) in C:\projects\ahoy\src\Swashbuckle.AspNetCore.Cli\Program.cs:line 121

exception. I have not been able to detect the cause. I am already using

  • Swashbuckle.AspNetCore (6.2.3)
  • Swashbuckle.AspNetCore.Swagger (6.2.3)
  • Swashbuckle.AspNetCore.Annotations (6.2.3),
  • Swashbuckle.AspNetCore.Newtonsoft (6.2.3)

Has anyone any idea what could be causing that problem? Note that it is different than "unable to resolve service" error, which could be resolved by adding services.AddSwaggerGen() in Startup.cs. I already use that since Swagger is already in use in this project.



Solution 1:[1]

Update your packages, the issue has been fixed. This used to be an issue on the GitHub page under Issue #763 and has since been resolved.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ethan