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

Sil*_*nus 13 c# .net-core .net-core-3.1

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

System.IO.FileNotFoundException:无法加载文件或程序集“System.Runtime,版本=4.2.2.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。该系统找不到指定的文件。

但它适用于 .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>
Run Code Online (Sandbox Code Playgroud)

小智 10

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


小智 8

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

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

C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\16.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>
Run Code Online (Sandbox Code Playgroud)

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


don*_*j87 7

在我的情况下,Nischal Nigam 的解决方案没有奏效,所以我所做的是,我将软件包Microsoft.NET.Sdk.Functions从版本更新1.0...3.0.11之后,它开始工作得很好。


Sil*_*nus 2

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