[英]How do I properly choose assemblies from referenced NuGet packages?
我正在使用NuGet.Core庫以編程方式安裝軟件包; 這也會自動安裝該軟件包的所有依賴項,但是其中一些軟件包是多目標的,並且包含用於不同.NET版本的程序集的多個版本。
我如何從這些多目標程序包中選擇正確的程序集版本(即,與從Visual Studio中手動安裝NuGet程序包時使用的方法相同)?
您可以使用VersionUtility類來查找兼容的項目。 這是將NuGet軟件包安裝到項目中時NuGet所做的。 您傳遞所有項目的列表(例如NuGet包中的引用)和目標框架名稱(例如“ .NETFramework,Version = 4.0”),並且VersionUtility類將返回兼容的項目。
摘自NuGet.Core的一些示例代碼,並稍作修改:
List<IPackageAssemblyReference> assemblyReferences =
GetCompatibleItems(package.AssemblyReferences).ToList();
static IEnumerable<T> GetCompatibleItems<T>(FrameworkName targetFramework, IEnumerable<T> items) where T : IFrameworkTargetable
{
IEnumerable<T> compatibleItems;
if (VersionUtility.TryGetCompatibleItems(targetFramework, items, out compatibleItems))
{
return compatibleItems;
}
return Enumerable.Empty<T>();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.