[英]Is it a good idea to target both ef core 3.1 and 5?
我有一個小型 nuget package 與帶有 2 個表的小型數據庫交互。 我在 2 個項目中使用過它,1 是 dotnet 5,另一個是舊的 dotnet 框架 4.6,因此我的目標是 netstandard2.0,到目前為止它運行良好。
我需要將 dotnet 5 中的所有軟件包更新到最新版本,但 ef core 5 需要 dotnet 標准 2.1。 處理它的最佳方法是什么?
我考慮過多目標,但首先我不知道這是否是一個好主意,然后我不知道如何用 ef 5 來定位 dotnet standard 2.1,同時用 ef 來定位 dotnet standard 2 3.1。
針對多個版本的 EF Core(或任何其他包)可以,但請記住,它會影響 package 的可維護性,因此只有您可以決定是否值得。
關於實施:
您可以通過在ItemGroup
級別使用Condition
並檢查$(TargetFramework)
的值來解決項目引用問題。
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.13" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
</ItemGroup>
在您的 C# 代碼中,您需要使用預處理器指令 ( #if NETSTANDARD2_0
) 來區分這兩種實現。
您可以在此處閱讀有關 both.csproj 和 C# 解決方案的更詳細文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.