发布外部包

时间:2014-05-02 13:14:26

标签: f# f#-fake

我想从FAKE发布nuget包。但我不会使用NuGet来创建这些包。我在某些项目中安装了OctoPack,并且我使用/ p运行构建:RunOctoPack = True。这会将.nupkg文件转储到bin目录中。 然后我如何收集这些包并将它们推送到NuGet服务器?我似乎无法让NuGetPublish和FileIncludes一起工作。

编辑: 现在我使用ExecProcess

解决了这个问题
Target "Publish" (fun _ ->
    let result = ExecProcess (fun info ->  
                   info.FileName <- "MySolution/.nuget/NuGet.exe"
                   info.WorkingDirectory <- "MySolutionDirectory"
                   info.Arguments <- "push \"**/bin/**/*.nupkg\" -s http://my-nuget-server") TimeSpan.MaxValue

    if result <> 0 then failwithf "NuGet.exe push returned with a non-zero exit code"

2 个答案:

答案 0 :(得分:1)

我们有NuGet Publish task,它应该完全符合您的需要。

答案 1 :(得分:1)

正如Steffen所提到的,您可以使用NuGet Publish任务,它在API中有描述,但没有相关的教程。

您的脚本代码可能如下所示:

NuGetPublish (fun nugetParams -> 
    { nugetParams with
        AccessKey = "nuget_api_key"
        PublishUrl = "nuget_feed_url"
        Project = "project_name"
        Version = "project_version"
        WorkingDir = "nupkg_file_location"
    }
)

其中:

  • 项目 - nupkg文件名的主要部分(即My.Super.Project
  • 版本 - nupkg文件名的版本部分(即0.0.10
  • WorkingDir - 您的nukpg文件的位置

此任务将要查找的完整nupkg文件名是:

WorkingDir\Project.Version.nupkg