无论如何都要阅读NuGet-package-file的元数据?
我真的想在我的nupkg文件中创建一个简单的网站..
提前致谢!
答案 0 :(得分:19)
NuGet.Core包中包含用于读取包元数据的官方API。
要阅读有关单个.nupkg文件的信息,请使用类似于以下内容的代码。
var myPackage = new ZipPackage(@"C:\Path\to\MyPackage.1.0.0.nupkg");
Console.WriteLine("Id: {0}", myPackage.Id);
Console.WriteLine("Version: {0}", myPackage.Version);
Console.WriteLine(
"Assemblies: {0}",
myPackage.AssemblyReferences.Select(a => a.Name).ToArray());
还有类似的类来读取包源(也称为Feeds)等。
答案 1 :(得分:0)
如果在服务器中部署了nuget,则可以访问nugetCore API以访问所有元数据。
using NuGet;
示例代码
IPackageRepository repo =
PackageRepositoryFactory.Default.CreateRepository("https://nugetserver.sample/nuget");
//Initialize the package manager
string path = "../../xyx";
PackageManager packageManager = new PackageManager(repo, path);
var package = packageManager.SourceRepository.GetPackages()
.OrderByDescending(p => p.Version).Where(p => p.Id == packageName).FirstOrDefault();
var version = package.Version.ToFullString();
var packageName = package.GetFullName();
完成该任务的实际代码如下
var package = packageManager.SourceRepository.GetPackages()
.OrderByDescending(p => p.Version).Where(p => p.Id == packageName).FirstOrDefault();