.NET Core 3.1 - 无法加载文件或程序集 System.Runtime,版本=4.2.2.0

.NET Core 3.1 - Could not load file or assembly System.Runtime, Version=4.2.2.0

.NET Core 3.1 控制台应用程序在构建期间生成错误 -

System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

但它适用于 .NET Core 3.0 版本。

我正在使用 Microsoft.Orleans。这是 csproj -

    <Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Orleans.Core" Version="3.0.2" />
    <PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="3.0.2">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>

</Project>

ReubenBond 帮我解决了问题。我使用 Microsoft.Orleans.CodeGenerator.MSBuild 包而不是 Microsoft.Orleans.OrleansCodeGenerator.Build

我正在使用 Microsoft Visual Studio - 版本 16.4.5

转到以下位置并在文本编辑器中打开 devenv.exe.config 文件:

C:\Users\<username>\AppData\Local\Microsoft\VisualStudio.0_1832c881\devenv.exe.config

将此绑定粘贴到 <configuration> -> <runtime> -> <assemblyBinding>

<dependentAssembly>
  <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>

在此之后,保存文件并重新启动 Visual Studio。

在我的例子中,Nischal Nigam 的解决方案没有成功,所以我做了什么,我将包 Microsoft.NET.Sdk.Functions 从版本 1.0... 更新到 3.0.11,然后它开始工作就好了。

确保正确加载项目(而不仅仅是包含项目的文件夹)。在我的例子中,我没有加载 .csproj 文件,而是只加载了包含整个项目的文件夹。然后我做了什么,重新加载并明确单击 .csproj 文件,然后它恢复正常。

  1. 双击“NameOfYourFile.csproj”加载您的项目
  2. 在菜单栏中,单击“项目”=>“NameOfYourFile”的属性。选择“应用程序”和select一个有效的框架目标(列表中最新的)。
  3. 重建,应该可以。