I'm using `netstandard2.1` library in my `netcoreapp3.0` web application. When adding my service in `Startup`, I'm getting the below error:

> 
> 'Could not load type 'Microsoft.AspNetCore.Mvc.MvcJsonOptions' from
>  assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=3.0.0.0
> 
> 
> 

I'm also using some features from `Microsoft.AspNetCore.Mvc` 2.2.0 package in my class library.

Here is my library `.csproj`,

```xml
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
  </ItemGroup>

</Project>

```

Here is my `ServiceExtensions` class from my library,

```cs
public static class ServiceExtensions
{
    public static IMvcBuilder AddMyLibrary(this IMvcBuilder builder)
    {
        builder.Services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
        builder.AddJsonOptions(options =>
        {
            options.SerializerSettings.ContractResolver = new DefaultContractResolver();
        });
        builder.Services.ConfigureOptions<ConfigureLibraryOptions>();

        return builder;
    }
}

```

Here is my `ConfigureLibraryOptions` class,

```cs
public class ConfigureLibraryOptions : IConfigureOptions<MvcOptions>
{
    public void Configure(MvcOptions options)
    {
        options.ModelBinderProviders.Insert(0, new CustomBinderProvider());
    }
}

```

Here is the `ConfigureServices` from `Startup`,

```cs
services.AddControllersWithViews().AddMyLibrary();

```

Please help on why I'm getting this error and assist on how to solve this?
['https://Stackoverflow.com/questions/58362757', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/10851213/']
When you config "Swashbuckle.AspNetCore", needed for configuring ApiKeyScheme become to OpenApiSecurityScheme it is changing the scheme from

```
 c.AddSecurityDefinition("Bearer", new ApiKeyScheme { In = "header", Description = 
 "Please enter JWT with Bearer into field", Name = "Authorization", Type = "apiKey" 
 });
 c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>> {
 { "Bearer", Enumerable.Empty<string>() }, });

```

To

```
    c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
    Description =
        "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef\"",
    Name = "Authorization",
    In = ParameterLocation.Header,
    Type = SecuritySchemeType.ApiKey,
    Scheme = "Bearer"
});

c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
    {
        new OpenApiSecurityScheme
        {
            Reference = new OpenApiReference
            {
                Type = ReferenceType.SecurityScheme,
                Id = "Bearer"
            },
            Scheme = "oauth2",
            Name = "Bearer",
            In = ParameterLocation.Header,

        },
        new List<string>()
    }
});

```
In my case, the solution was to add `services.AddControllers()` as described under <https://github.com/RicoSuter/NSwag/issues/1961#issuecomment-515631411>.