2014-10-31 42 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

相關問題