我尝试过从。net 5降级到。net core 3.1。现在我改变了主意,想回到。net 5。现在,当我尝试安装Nuget包时,我得到了奇怪的错误。我需要做什么?它要求Microsoft.CodeAnalysis.Common 3.8。但是那个包上写着"不要手动安装这个包,它将被其他需要它的包添加为先决条件"。
项目文件行源抑制状态NU1107为Microsoft.CodeAnalysis.Common检测到版本冲突。直接在project project中安装/引用Microsoft.CodeAnalysis.Common 3.8.0来解决这个问题。项目→microsoft . aspnetcore . mvc . razor . runtime compiler 5.0.2 ->Microsoft.CodeAnalysis.Razor 5.0.2 ->Microsoft.CodeAnalysis.Common (>= 3.8.0)项目→telerik . ui .for. asp.net . core 2021.1.119 ->微软。CodeAnalysis 3.7.0 ->Microsoft.CodeAnalysis.CSharp.Workspaces 3.7.0 ->Microsoft.CodeAnalysis.Common(= 3.7.0)。项目C:UsersntimmermansourcereposPROJECTPROJECTPROJECT.csproj 1 IntelliSense
如果我继续安装它,我留下了警告:
严重性代码描述项目文件行源抑制状态警告NU1608检测到软件包版本超出依赖项约束:Microsoft.CodeAnalysis.CSharp.Workspaces 3.7.0要求Microsoft.CodeAnalysis.Common(= 3.7.0),但版本Microsoft.CodeAnalysis.Common 3.8.0是解决。项目C:UsersMEsourcereposPROJECTPROJECTPROJECT.csproj 1 Build
CSPROJ文件是:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace>PROJECT</RootNamespace>
<UserSecretsId>SECRETID</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Graph" Version="3.23.0" />
<PackageReference Include="Microsoft.Identity.Web" Version="1.5.1" />
<PackageReference Include="Microsoft.Identity.Web.UI" Version="1.5.1" />
<PackageReference Include="Telerik.UI.for.AspNet.Core" Version="2021.1.119" />
</ItemGroup>
<ItemGroup>
<None Update="AdventureCycles-Logo.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
这并不是什么奇怪的行为,错误信息会告诉你哪里出了问题。
你的依赖项可以有自己的依赖项,这些依赖项可以在同一个包的不同版本之间改变。如果您在同一个包上有两个版本范围不兼容的依赖(在您的情况下,您对的依赖正好是3.7.0版本的Microsoft.CodeAnalysis)。常见的,并且看起来像对同一个包的另一个依赖,范围>= 3.8.0),那么没有办法同时满足这两个,它像这样失败。
也没有办法修复这个问题,除了找到有冲突依赖的包并引用没有这个依赖的另一个版本(听起来你已经这样做了)