2017-02-11 32 views
8

在過去的.NET框架我用這個例子用的NuGet工作程序如何在.NET Core中以編程方式從nuget下載nupkg包?

Play with Packages, programmatically!

是否有.NET睿任何等效源?

//ID of the package to be looked up 
string packageID = "EntityFramework"; 

//Connect to the official package repository 
IPackageRepository repo = PackageRepositoryFactory.Default.CreateRepository("https://packages.nuget.org/api/v2"); 

//Get the list of all NuGet packages with ID 'EntityFramework'  
List<IPackage> packages = repo.FindPackagesById(packageID).ToList(); 

//Filter the list of packages that are not Release (Stable) versions 
packages = packages.Where (item => (item.IsReleaseVersion() == false)).ToList(); 

//Iterate through the list and print the full name of the pre-release packages to console 
foreach (IPackage p in packages) 
{ 
    Console.WriteLine(p.GetFullName()); 
} 

//--------------------------------------------------------------------------- 

//ID of the package to be looked up 
string packageID = "EntityFramework"; 

//Connect to the official package repository 
IPackageRepository repo = PackageRepositoryFactory.Default.CreateRepository("https://packages.nuget.org/api/v2"); 

//Initialize the package manager 
string path = <PATH_TO_WHERE_THE_PACKAGES_SHOULD_BE_INSTALLED> 
PackageManager packageManager = new PackageManager(repo, path); 

//Download and unzip the package 
packageManager.InstallPackage(packageID, SemanticVersion.Parse("5.0.0")); 

我想以編程方式下載和安裝任何軟件包。

https://api.nuget.org/v3/index.json 
+2

你有沒有嘗試過使用V3鏈接作爲存儲庫路徑? –

+0

@MathivananKP,我試過但「NuGet.Core」程序集無法在.NET Core上運行。 – NBM

回答

6

您顯示的代碼示例使用了NuGet 2,它在.NET Core上不受支持。您需要使用NuGet 3或(即將發佈的)NuGet 4.這些API與NuGet 2是一個巨大的突破。其中一個重大變化是NuGet.Core已過時,不會移植到.NET Core。

在docs.microsoft.com上爲NuGet 3上的信息簽出NuGet API v3。在編寫本文時,這個文檔基本上是一個大的TODO,並沒有太多的信息。

以下是一些更有用的博客文章。

Exploring the NuGet v3 Libraries, Part 1 Introduction and concepts

Exploring the NuGet v3 Libraries, Part 2

Exploring the NuGet v3 Libraries, Part 3

和當然,你可以隨時辦理的NuGet的源代碼洞穴探險找到更多的例子。大部分核心邏輯都在https://github.com/nuget/nuget.client之間。

相關問題