1

我正在尝试使用Nuget.core API以编程方式创建一个基本的 NuGet 包以编程方式创建一个基本的 NuGet 包。

首先,我填充 NuSpec 清单文件的元数据和文件字段:

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

我猜它可能正在被保存,但文件名是Debug而不是x.nupkg.

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