我今天犯了一个大错误,更新了一些 NuGet 库。它迫使我要么回滚一周的工作量,要么升级到 ASP .NET Core 3.0。我讨厌使用非生产的东西,但我也不想理清这些库,所以我升级了。然后它迫使我重新定位 .NET Standard 2.1 库。我做到了。
我现在的问题是客户端 UWP 代码。当我尝试编译时,我得到:
error : Project '..\ClassLibrary1\ClassLibrary1.csproj' targets 'netstandard2.1'. It cannot be referenced by a project that targets 'UAP, Version=v10.0.10586'.
即使使用原始的 UWP 和 .NET Standard 2.1 库也会发生这种情况。有关如何使 Visual Studio 2019 客户端代码与最新升级一起工作的任何线索吗?
目前所有 Windows 10 SDK 均不支持.NET 标准 2.1 https://learn.microsoft.com/en-us/dotnet/standard/net-standard.
Windows 10 19H2 https://blogs.windows.com/windowsexperience/2019/09/05/announcing-windows-10-insider-preview-build-18362-10019-19h2/正在使用SDK编号与19H1相同 https://blogs.windows.com/buildingapps/2019/04/02/windows-10-sdk-preview-build-18362-available-now/,因此它不太可能支持 .NET Standard 2.1。 (但我当然希望如此。)
微软尚未发布正式公告,但 Windows 10 20H1 正在发布有意义的 SDK 更新 https://blogs.windows.com/windowsdeveloper/2019/09/24/windows-10-sdk-preview-build-18985-available-now/,所以它很可能会支持它。一旦出现这种情况,UWP 应用程序将需要 20H1 才能运行(因此这将成为支持的最低版本)。
这种情况的一个大问题是Entity Framework Core 3.0 需要 .NET Standard 2.1 https://github.com/aspnet/EntityFrameworkCore/issues/15498,因此目前无法在 UWP 应用程序中使用(更新:此问题已通过支持 .NET Standard 2.0 的 Entity Framework Core 3.1 解决)。
顺便说一下,作为一个实验,我能够分叉 Entity Framework Core 3.0(用于 SQLite)并使其在 .NET Standard 2.0 上编译。我基本上必须从 .NET Core 3.0 手动复制一些新的 API(例如 IAsyncXXX)。它确实有效,因此对于真正需要它的人来说这是一个选择。请注意,我没有尝试使用 SQL Server 提供程序。
Update: The UWP 团队计划让 UWP 应用能够使用 .NET 5 https://github.com/dotnet/standard/issues/1567#issuecomment-566862284届时 UWP 将支持 .NET Standard 2.1(及更多)。这可能发生在 20H2 或 21H1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)