我在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
的来源。还有其他人遇到同样的问题吗?
答案 0 :(得分:2)
我仍然不确定是什么引起了问题,但是为了解决这个问题,我继续按照此article从ASP.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>