1

Nuget.core APIを使用して、プログラムで基本的な NuGet パッケージを作成しようとしています。

まず、NuSpec マニフェスト ファイルの Metadata および Files フィールドにデータを入力します。

Manifest nuspec = new Manifest(); //creating a nuspec

ManifestMetadata metaDataLocal = new ManifestMetadata()
{
    Authors = "mauvo",
    Version = "1.0.0.0",
    Id = "myPackageIdentifier",
    Description = "A description",
};

nuspec.Metadata = metaDataLocal; //populating nuspec's metadata

ManifestFile mf = new ManifestFile();
mf.Source = "bin\\Debug\\DX11VideoRenderer.dll";
mf.Target = "lib";

List<ManifestFile> listManifestFile = new List<ManifestFile>();

listManifestFile.Add(mf);
nuspec.Files = listManifestFile; //populating nuspec's Files field

次に、パッケージ ビルダー クラスを使用してパッケージを作成し、プロジェクトのデバッグ フォルダーに保存します。

PackageBuilder builder = new PackageBuilder() 
{
    Id = "1",
    Description = "Some test package"
};

builder.Populate(nuspec.Metadata);

foreach (ManifestFile value in nuspec.Files)
{
    builder.PopulateFiles(value.Target, nuspec.Files);
    builder.Files.Add(new PhysicalPackageFile()
    {
        SourcePath = value.Target,
        TargetPath = @"lib\" 
    });
}

using (FileStream stream = File.Open("bin\\Debug", FileMode.OpenOrCreate))
{
    builder.Save(stream);
}

すべてのソース パス、宛先パス、パッケージ情報、およびメタデータをハードコーディングしました。しかし、何らかの理由でパッケージが作成されていません。コードはエラーなしで実行されます。

4

1 に答える 1

1

おそらく保存されていると思いますが、ファイルの名前Debugx.nupkg.

using (FileStream stream = File.Open("bin\\Debug", FileMode.OpenOrCreate))
{                                    ^^^^^^^^^^^^
    builder.Save(stream);
}
于 2014-11-02T04:24:15.627 に答える