.NET Core 3.0 迁移错误 IAsyncEnumerable<T> 存在于 System.Interactive.Async 和 System.Runtime

she*_*ira 11 c# .net-core .net-core-3.0

我正在尝试将项目从 .net core 2.2 迁移到 3.0。

我收到错误:

错误 CS0433 类型 'IAsyncEnumerable< T >' 存在于 'System.Interactive.Async, Version=3.2.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263' 和 'System.Runtime, Version=4.2.1.0

我在这里尝试了一个建议:https : //github.com/aspnet/EntityFrameworkCore/issues/15047,它建议强制更新到 System.Interactive.Async 4.0.0。(我将此引用添加到我的项目中)。

但是我有另一个错误:引用类型“IAsyncEnumerable<>”声称它在“System.Interactive.Async”中定义,但找不到

我正在使用 IAsyncQueryProvider,它似乎导致了问题。

我在 2.2 中没有这些问题,目前我找不到任何解决方法。

我还尝试强行更新到 System.Runtime 4.3.1,但没有帮助。

小智 6

作为在 .NET Core 2.2 上偶然发现这一点但没有迁移到 3+ 的人,我找到了针对上述相同问题的另一种解决方案。自此评论以来,引用的项目文件已被修改,因此这是一个直接链接

就我而言,我将此目标添加到项目文件中:

<Target Name="AddAssemblyAliasToReactiveAsync"
        AfterTargets="ResolveAssemblyReferences"
        Condition="'$(TargetFramework)' == 'netcoreapp2.2'">
  <ItemGroup>
    <ReferencePath Condition=" '%(FileName)' == 'System.Interactive.Async' ">
      <Aliases>reactive</Aliases>
    </ReferencePath>
  </ItemGroup>
</Target>
Run Code Online (Sandbox Code Playgroud)


she*_*ira 5

Panatiotis 的建议有效,我添加了对 Microsoft.EntityFrameworkCore 3.0 的引用并且它起作用了。对于我的情况,.NET Core 2.2 中不需要此参考。