Добавление XmlSerialser в WebApi в. NET Core 2.2 не работает - PullRequest
0 голосов
/ 27 февраля 2020

Я хотел добавить в свой 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>

1 Ответ

0 голосов
/ 28 февраля 2020

Что-то не так с моим файлом решения. Когда я переместил все свои проекты в другое решение, вдруг все заработало: O

...