为什么NuGetPack响应“不能创建一个没有依赖关系,也没有内容的包”

问题描述:

我尝试使用下面的蛋糕脚本:为什么NuGetPack响应“不能创建一个没有依赖关系,也没有内容的包”

Task("Create-NuGet-Packages") 
    .IsDependentOn("Build") 
    .WithCriteria(() =>DirectoryExists(parameters.Paths.Directories.NugetNuspecDirectory)) 
    .Does(() => 
{ 
    var nuspecFiles = GetFiles(parameters.Paths.Directories.NugetNuspecDirectory + "/**/*.nuspec"); 

    EnsureDirectoryExists(parameters.Paths.Directories.NuGetPackages); 

    foreach(var nuspecFile in nuspecFiles) 
    { 
     // TODO: Addin the release notes 
     // ReleaseNotes = parameters.ReleaseNotes.Notes.ToArray(), 

     // Create packages. 
     NuGetPack(nuspecFile, new NuGetPackSettings { 
      Version = parameters.Version.SemVersion, 
      BasePath = parameters.Paths.Directories.PublishedLibraries.Combine(nuspecFile.GetFilenameWithoutExtension().ToString()), 
      OutputDirectory = parameters.Paths.Directories.NuGetPackages, 
      Symbols = false, 
      NoPackageAnalysis = true 
     }); 
    } 
}); 

但我不断收到同样的错误:

Error returned from NuGetPack

我确认生成的*.temp.nuspec文件确实包含正确的文件,并且文件存在于指定的位置,并且BasePath正确。

注:我已经使用-Verbosity Diagnostic生成被传递给NuGet.exe实际的命令,并运行直接也导致同样的错误消息。因此,我认为这不是Cake的直接问题,而是NuGet.exe的问题。

+0

确保您使用的是最新的NuGet。你可以运行'nuget update -self'来安装最新版本。 –

原来,这是我使用的目录路径的错误。我试图使用.build\_temp\_PublishedLibraries\Cake.Twitter

更改.buildBuildArtifacts立即作出一切工作:

enter image description here

做挖一点点之后,这似乎是一个已知问题的NuGet(以及至少知道一些):

https://twitter.com/ferventcoder/status/505048107520765952

即,以.开头的任何文件或文件夹都不会被nuget包识别。

看起来这个问题已经在Chocolatey中得到纠正,因此它在那里工作。

注:我提出这是这里的问题:https://github.com/NuGet/Home/issues/3308

如果你只是指定的<file src属性不好的路径/规范,收集的NuGet没有文件这个错误也可以看出。