Sgen/microsoft.xmlserializer.generator не может сгенерировать

Я создал новый проект .NET Standard 2.0 и добавил следующий класс:

using System;
using System.Xml.Serialization;

namespace MyFunnyLib
{
    [Serializable]
    public class Foo
    {
        [XmlElement] 
        public string Bar { get; set; }
    }
}

Мой файл .csproj выглядит так:

<Project Sdk = "Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
        <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include = "Newtonsoft.Json" Version = "9.0.1" />
        <PackageReference Include = "Microsoft.XmlSerializer.Generator" Version = "8.0.0" />
    </ItemGroup>
    <ItemGroup>
        <DotNetCliToolReference Include = "Microsoft.XmlSerializer.Generator" Version = "8.0.0"/>
    </ItemGroup>
</Project>

Когда я компилирую проект, я получаю следующий результат:

Build started at 16:15...
1>------ Build started: Project: MyFunnyLib, Configuration: Debug Any CPU ------
1>MyFunnyLib -> C:\Users\MyUserName\source\repos\MyFunnyLib\MyFunnyLib\bin\Debug\netstandard2.0\MyFunnyLib.dll
1>.NET Xml Serialization Generation Utility, Version 8.0.0]
1>Serialization Code File Name: C:\Users\MyUserName\source\repos\MyFunnyLib\MyFunnyLib\obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs.
1>Generated serialization code for assembly C:\Users\MyUserName\source\repos\MyFunnyLib\MyFunnyLib\obj\Debug\netstandard2.0\MyFunnyLib.dll --> 'C:\Users\MyUserName\source\repos\MyFunnyLib\MyFunnyLib\obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs'.
1>obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs(122,20): warning CS0234: The type or namespace name 'Span<>' does not exist in the namespace 'System' (are you missing an assembly reference?)
1>obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs(122,44): warning CS0518: Predefined type 'System.Span`1' is not defined or imported
1>obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs(171,20): warning CS0234: The type or namespace name 'Span<>' does not exist in the namespace 'System' (are you missing an assembly reference?)
1>obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs(171,44): warning CS0518: Predefined type 'System.Span`1' is not defined or imported
1>C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\microsoft.xmlserializer.generator\8.0.0\build\Microsoft.XmlSerializer.Generator.targets(55,5): warning : SGEN: Failed to generate the serializer for MyFunnyLib.dll. Please follow the instructions at https://go.microsoft.com/fwlink/?linkid=858594 and try again.
1>.NET Xml Serialization Generation Utility, Version 8.0.0]
1>EXEC : warning : Ignoring invalid command line argument: 'obj\Debug\netstandard2.0"'..
1>The path is empty. (Parameter 'path')
1>C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\microsoft.xmlserializer.generator\8.0.0\build\Microsoft.XmlSerializer.Generator.targets(85,5): warning MSB3073: The command "dotnet Microsoft.XmlSerializer.Generator --force --quiet --reference "C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\microsoft.xmlserializer.generator\8.0.0\lib\netstandard2.0\dotnet-Microsoft.XmlSerializer.Generator.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\microsoft.csharp\4.0.1\ref\netstandard1.0\Microsoft.CSharp.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\newtonsoft.json\9.0.1\lib\netstandard1.0\Newtonsoft.Json.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll;C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll" --assembly "" --type  --out "obj\Debug\netstandard2.0\"" exited with code 1.
1>C:\Users\MyUserName\source\repos\MyFunnyLib\EXT\packages\microsoft.xmlserializer.generator\8.0.0\build\Microsoft.XmlSerializer.Generator.targets(86,5): warning : SGEN: Fail to generate obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.dll.XmlSerializers'. Please follow the instructions at https://go.microsoft.com/fwlink/?linkid=858594 and try again.
1>Done building project "MyFunnyLib.csproj".
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 16:15 and took 05,700 seconds ==========

Я предполагаю, что проблема в вызове sgen с:

dotnet Microsoft.XmlSerializer.Generator --force --quiet --reference ...

В ... выше включены все файлы из каталога nuget-ext-. Я хочу, чтобы типы были сериализованы только из моей собственной сборки, а не всех остальных.

Что я здесь делаю не так?

Я уже пробовал добавить следующие строки в csproj, как сказано в документе:

<PropertyGroup> 
   <SGenReferences>C:\Users\MyUserName\source\repos\MyFunnyLib\MyFunnyLib\bin\Debug\netstandard2.0\MyFunnyLib.dll</SGenReferences>
    <SGenTypes>MyFunnyLib.Foo</SGenTypes>
    <SGenProxyTypes>false</SGenProxyTypes>
    <SGenVerbose>true</SGenVerbose>
</PropertyGroup>

Я попробовал решение от @dbc, поначалу оно выглядело хорошо, но при попытке сериализации я получил много исключений во время выполнения. Поэтому я создаю небольшой пример проекта, в котором можно воспроизвести проблему.

Core.Types и Core.Validation являются проектами .netStandard. Остальные проекты — это .net Framework.

  • Core.Validation имеет ссылку на Core.Types.
  • CommonInterface.Data имеет ссылки на Core.Validation и Core.Types.
  • CommonInterface.Transfer имеет ссылки на CommonInterface.Data и Core.Types.

Я хочу создать XmlSerializer.Dll для CommonInterface.Transfer-Assembly. Я попробовал решение ниже со следующими строками в csproj:

  <ItemGroup>
    <PackageReference Include = "Microsoft.XmlSerializer.Generator" Version = "8.0.0" />
    <PackageReference Include = "Newtonsoft.Json" Version = "13.0.3" />
    <PackageReference Include = "System.Memory" Version = "4.5.4" Condition = "'$(TargetFramework)'=='netstandard2.0'" />
    <PackageReference Include = "System.Memory" Version = "4.5.4" Condition = "'$(TargetFramework)'=='netstandard2.1'" />
  </ItemGroup>
  <ItemGroup>
      <DotNetCliToolReference Include = "Microsoft.XmlSerializer.Generator" Version = "8.0.0" />
  </ItemGroup>

При сборке я получаю результат:

4>  CommonInterface.Transfer -> C:\Users\User1\repos\WpfApp3\bin\MyApp\CommonInterface.Transfer.dll
4>  Version for package `Microsoft.XmlSerializer.Generator` could not be resolved.
4>C:\Users\User1\.nuget\packages\microsoft.xmlserializer.generator\8.0.0\build\Microsoft.XmlSerializer.Generator.targets(51,5): warning MSB3073: The command "dotnet Microsoft.XmlSerializer.Generator "obj\Debug\CommonInterface.Transfer.dll" --force --quiet obj\Debug\sgen.rsp" exited with code 1.
4>C:\Users\User1\.nuget\packages\microsoft.xmlserializer.generator\8.0.0\build\Microsoft.XmlSerializer.Generator.targets(52,5): warning : SGEN: Failed to generate the serializer for CommonInterface.Transfer.dll. Please follow the instructions at https://go.microsoft.com/fwlink/?linkid=858594 and try again.
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При сборке сборок sgen XmlSerializer на основе netstandard2.0 и netstandard2.1, помимо следования инструкциям из Использование генератора сериализатора Microsoft XML в .NET Core , вы должны добавить ссылку на System.Memory, которая обеспечивает доступ до Span<T>.

Используя этот ответ от Марка Гравелла для использования Span в netstandard 2.1 без зависимостей, я изменил ваш .csproj, чтобы условно добавить <PackageReference Include = "System.Memory" ... />

<Project Sdk = "Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
<!--
    I had to comment this out when building with .NET 8.  If I left it in I got an error:
    error MSB3474: The task "SGen" is not supported on the .NET Core version of MSBuild.
    <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
-->
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include = "Microsoft.XmlSerializer.Generator" Version = "8.0.0" />
    <PackageReference Include = "System.Memory" Version = "4.5.4" Condition = "'$(TargetFramework)'=='netstandard2.0'"/>
    <PackageReference Include = "System.Memory" Version = "4.5.4" Condition = "'$(TargetFramework)'=='netstandard2.1'"/>
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include = "Microsoft.XmlSerializer.Generator" Version = "8.0.0" />
  </ItemGroup>
</Project>

И мне удалось успешно выполнить сборку на основе netstandard2.0 и netstandard2.1, используя dotnet build с dotnet версии 8.0.203.

Примечания:

  • версия dotnet build для dotnet 8 сгенерировала ошибку для свойства <GenerateSerializationAssemblies>:

    error MSB3474: The task "SGen" is not supported on the .NET Core version of MSBuild.

    Поэтому мне пришлось это прокомментировать.

  • Зачем нужен Span<T>? Сгенерированный код можно найти в obj\Debug\netstandard2.0\MyFunnyLib.XmlSerializers.cs. Если отредактировать код, то вы увидите строку:

    System.Span<bool> paramsRead = stackalloc bool[1];
    

    Это вводит зависимость.

Я пробовал это, но это тоже не работает. У меня были исключения во время выполнения. Теперь я вернул проект с .netStandard2.0 на .net-Framework 4.8. Теперь, если я использую ваш пример в csproj, я получаю сообщение об ошибке Microsoft.XmlSerializer.Generator.targets(52,5): предупреждение: SGEN: не удалось создать сериализатор для MyLib.Transfer.dll.

Tomtom 19.06.2024 13:40

@Tomtom - о чём csproj ты говоришь? csproj, содержащий MyFunnyLib? Или какой-то другой csproj, который его потребляет? Мне удалось успешно создать DLL, содержащую MyFunnyLib, так что не могли бы вы поделиться минимальным воспроизводимым примером?

dbc 19.06.2024 16:56

Я добавил небольшой пример

Tomtom 20.06.2024 11:08

Другие вопросы по теме