簡體   English   中英

如何使用NuGet.Core創建NuGet包?

[英]How to create a NuGet Package using NuGet.Core?

我想創建一個使用NuGet包NuGet.Core的應用程序。 它有一個名為PackageBuilder的類,使其成為可能。 有沒有可用的樣本/教程/文檔?

一個非常簡單的例子:

  1. 創建一個包含所需文件的文件夾。
  2. 寫一些像這樣的代碼:

     ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); builder.PopulateFiles("folderPath/", new[] {new ManifestFile() {Source = "**"}}); builder.Populate(metadata); using(FileStream stream = File.Open(packagePath, FileMode.OpenOrCreate)) { builder.Save(stream); } 

基於David代碼的改進示例。 變化:

  • 除* .nuspec之外的文件夾中的所有文件都將添加到包中。
  • 定義包文件名的行。

     ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); var files = Directory.GetFiles(packagePath, "*", SearchOption.AllDirectories) .Where(f => !f.EndsWith(".nuspec")) .Select(f => new ManifestFile { Source = f, Target = f.Replace(path, "") }) .ToList(); builder.PopulateFiles("", files); builder.Populate(metadata); string packageFile = Path.Combine(packagePath, builder.GetFullName()) + ".nupkg"; using(FileStream stream = File.Open(packageFile, FileMode.OpenOrCreate)) { builder.Save(stream); } 

我不知道有關如何使用NuGet.Core構建NuGet包的任何教程或文檔。 相反,我會看一下NuGet.exe的源代碼。 它有一個pack命令,可以從.nuspec文件構建一個包。 使用PackageBuilder類的PackCommand類應該向您展示您需要做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM