NuGet.Core を使用して NuGet パッケージを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/6808868

  •  25-10-2019
  •  | 
  •  

質問

NuGet パッケージ NuGet.Core を利用するアプリケーションを作成したいと考えています。これを可能にする PackageBuilder というクラスがあります。利用可能なサンプル/チュートリアル/ドキュメントはありますか?

役に立ちましたか?

解決

NuGet.Core を使用して NuGet パッケージを構築する方法に関するチュートリアルやドキュメントを知りません。代わりに、NuGet.exe のソース コードを見てみましょう。それは パック .nu​​spec ファイルからパッケージを構築するコマンド。の PackCommand クラス, 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);
    }
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top