2014-10-31 76 views
0

我正在尝试使用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 

然后我用包生成器类来创建包,并保存到我的项目的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

问题解决了吗? – 2015-12-31 09:00:11

回答

1

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

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

嗨,抱歉,但这不是问题。我尝试了debug和dubug/a.nupkg – nitinsh99 2014-11-03 04:30:38

相关问题