Я хотел добавить в свой WebAPI (ASP. NET Core) возможность работать также с форматом XML. Я сделал конфигурацию в соответствии с документацией на MSDN (https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.2), но, к сожалению, она не работает в моем случае. Подробно я сделал две вещи. Я добавил пакет NuGet Mircrosoft.AspNetCore. Mvc .Formatters. XML, а также добавил строки ниже к ConfigureServiceMethod
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddXmlSerializerFormatters();
После этого при запуске приложения появляется сообщение об ошибке ниже
System.IO.FileNotFoundException: 'Could not load file or assembly 'C:\project_name\bin\Debug\netcoreapp2.2\Microsoft.AspNetCore.Mvc.Formatters.Xml.XmlSerializers.dll'. The system cannot find the file specified.'
Как видите, метод AddXmlSerializerFormatters()
требует Microsoft.AspNetCore.Mvc.Formatters.Xml.XmlSerializers.dll
, но внутри установленного NuGet есть только Microsoft.AspNetCore.Mvc.Formatters.Xml.dll
, что должно быть в порядке, потому что в каждой документации написано, что эта dll требуется для использования этого метода. Знаете ли вы, как решить эту проблему? Я не нашел никакой информации по inte rnet об этой dll из исключения.
Ниже мой файл .csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<RootNamespace>NameOdProjec.WebApi</RootNamespace>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>..\..\..\bin\Debug\</OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="4.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Project.Services.csproj" />
</ItemGroup>
</Project>