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/']
I'm not sure if this solves OP's problem, but this error also occurs when you use Swashbuckle 4 in .Net Core 3. The solution is to use Swashbuckle 5.
(use command `install-package Swashbuckle.AspNetCore`) to have in .csproj

```
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" />

```

Then you'll need to upgrade it in Startup.cs. Generally that involves prefixing classes that don't compile with `OpenApi` e.g.

`options.SwaggerDoc("v1" new Info ...`

becomes

`options.SwaggerDoc("v1", OpenApiInfo`

Also `OpenApiSecurityScheme` becomes `ApiKeyScheme`

See also docs at <https://github.com/domaindrivendev/Swashbuckle.AspNetCore>
netstandard2.1 to netcoreapp3.0
MvcJsonOptions -> MvcNewtonsoftJsonOptions

```
public IServiceProvider ConfigureServices(IServiceCollection services)
{
            //MVC
            services.AddControllersWithViews(options =>
            {
            }).AddNewtonsoftJson();

            services.PostConfigure<MvcNewtonsoftJsonOptions>(options => {
                options.SerializerSettings.ContractResolver = new MyCustomContractResolver()
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                };
                options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
            });
}

```