Webアプリケーションでnetstandard2.1
ライブラリを使用してnetcoreapp3.0
います。にサービスを追加すると、Startup
次のエラーが発生します。
'アセンブリ' Microsoft.AspNetCore.Mvc.Formatters.Json、Version = 3.0.0.0から型 'Microsoft.AspNetCore.Mvc.MvcJsonOptions'を読み込めませんでした
またMicrosoft.AspNetCore.Mvc
、クラスライブラリで2.2.0パッケージの機能をいくつか使用しています。
これが私のライブラリです.csproj
、
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
</ItemGroup>
</Project>
これが私のServiceExtensions
ライブラリのクラスです。
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;
}
}
これが私のConfigureLibraryOptions
クラスです
public class ConfigureLibraryOptions : IConfigureOptions<MvcOptions>
{
public void Configure(MvcOptions options)
{
options.ModelBinderProviders.Insert(0, new CustomBinderProvider());
}
}
ここでConfigureServices
からStartup
、
services.AddControllersWithViews().AddMyLibrary();
なぜこのエラーが発生するのかを助け、これを解決する方法を支援してください。
netstandard2.1
、Microsoft.AspNetCore.Mvc
2.2.0 を参照してクラスライブラリを使用できないことを意味しnetcoreapp3.0
ますか?代わりに私はnetstandard2.1
tonetcoreapp3.0
を変更してto を追加するFrameworkReference
必要がありMicrosoft.AspNetCore.App
ますか?