我正在尝试使用Nuget.core API以编程方式创建一个基本的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
然后我使用包构建器类来创建包并将其保存到我的项目的debug文件夹中:
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);
}
我已经硬编码了所有源路径,目标路径,包信息和元数据。但由于某种原因,没有创建包。代码运行没有任何错误。
答案 0 :(得分:1)
我猜它可能正在保存,但文件的名称是Debug
而不是x.nupkg
。
using (FileStream stream = File.Open("bin\\Debug", FileMode.OpenOrCreate))
{ ^^^^^^^^^^^^
builder.Save(stream);
}