【发布时间】:2021-12-22 22:42:15
【问题描述】:
我希望对一些需要编译为 .NET Standard 2.0(用于旧版 .NET Framework 4.8 项目)和 .NET 6.0(用于新项目)的常见项目使用多目标。这些常见项目的一些依赖需要有条件地引用。例如,.NET Standard 2.0 目标需要保留在 Entity Framework Core 3.1 上,而 .NET 6.0 目标可以使用 Entity Framework Core 6.0。
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="morelinq" Version="3.3.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.18" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.18" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.18" />
<PackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="3.1.18" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="6.0.0" />
</ItemGroup>
但是,我遇到了用于更新包的 Visual Studio“管理 NuGet 包...”功能的问题,因为它似乎不支持目标框架。这会影响 Visual Studio 的所有版本,包括 2022:
是否有适当的方法来处理多目标项目的包升级?
【问题讨论】:
标签: .net visual-studio nuget-package visual-studio-2022