System.IO.FileLoadException:无法加载文件或程序集'Microsoft.AspNetCore.Mvc.Core,Version = 2.1.3.0'

时间:2019-01-11 21:50:48

标签: c# asp.net-mvc asp.net-core asp.net-core-2.1

我在ASP.NET Core 2.1 MVC项目上收到以下警告。

  

C:\ Program   文件\ dotnet \ sdk \ 2.2.102 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.NET.Sdk.DefaultItems.targets(153,5):   警告NETSDK1071:引用'Microsoft.AspNetCore.App'的程序包   指定了2.1.7的版本。指定此软件包的版本   不推荐。有关更多信息,请参见   https://aka.ms/sdkimplicitrefs

似乎在我的.csproj文件中引用了这一行:

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.7" />

如果我从PackageReference中删除了版本,则警告消失了,但是当我尝试启动我的项目时,我得到了这个错误:

  

System.IO.FileLoadException:无法加载文件或程序集   'Microsoft.AspNetCore.Mvc.Core,版本= 2.1.3.0,文化=中性,   PublicKeyToken = adb9793829ddae60'。找到的程序集清单   定义与程序集引用不匹配。 (来自的例外   HRESULT:0x80131040)

     

文件名:“ Microsoft.AspNetCore.Mvc.Core,版本= 2.1.3.0,   文化=中性,PublicKeyToken = adb9793829ddae60'

     

在MyProject.Web.Startup.ConfigureServices(IServiceCollection   服务)

     

---从上一个引发异常的位置开始的堆栈结束跟踪---

     在

  Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection   服务)

     在

  Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()

     

在Microsoft.AspNetCore.Hosting.Internal.WebHost.Initialize()

     

---从上一个引发异常的位置开始的堆栈结束跟踪---

     

在Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

我不确定Microsoft.AspNetCore.Mvc.Core, Version=2.1.3.0的来源。还有其他人遇到同样的问题吗?

2 个答案:

答案 0 :(得分:2)

我仍然不确定是什么引起了问题,但是为了解决这个问题,我继续按照此articleASP.NET Core 2.1更新为2.2

这是更新后我的.csproj的相关部分:

<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>

<ItemGroup>
    <!-- Other Unrelated Packages Here -->

    <PackageReference Include="Microsoft.AspNetCore.App" />

    <!-- Other Unrelated  Packages Here -->
</ItemGroup>

然后,我将所有NuGet软件包更新为最新版本。

我想象有一种解决方案,而不必升级ASP.NET Core的版本,但是由于我没有任何不升级的理由,这就是我要解决的问题。

答案 1 :(得分:1)

添加此

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.AspNetCore.Mvc.Core" publicKeyToken="adb9793829ddae60" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.1.7.0" newVersion="2.1.7.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>