【问题标题】:Pulling NuGet package version from TeamCity build number using FAKE使用 FAKE 从 TeamCity 内部版本号中提取 NuGet 包版本
【发布时间】:2015-09-29 12:19:17
【问题描述】:

我已经创建了从我的项目生成 NuGet 包的构建脚本,我现在正尝试从 TeamCity 中提取版本号,而不是在我的脚本中使用静态值。

我当前的代码是这样的(在目标内)

NuGet (fun p ->
    {p with
        Authors = authors
        Project = projectName
        Description = projectDescription
        OutputPath = packagingRoot
        Summary = projectSummary
        WorkingDir = packagingDir
        Version = TeamCityHelper.TeamCityBuildNumber }) "myProject.nuspec"

问题是与 FAKE 捆绑在一起的 TeamCity 助手返回一个可选字符串而不是一个字符串,而 NuGet 调用需要一个字符串。

这是我第一次使用 F#,我将如何将 TeamCityHelper.TeamCityBuildNumber 作为字符串而不是可选的,以便为 NuGet 步骤做好准备?如果 TeamCity 没有返回任何版本号,我最好终止构建,但现在我只想放入类似“0.0.1”的占位符。

【问题讨论】:

  • 如果 Team City 没有返回任何内容,您希望版本号是多少?
  • @DaveShaw 我已经编辑了我的问题以包含此内容。最好我希望构建失败,但现在我希望在设置 CI 服务器的其他组件时只使用类似“0.0.1”的占位符。

标签: f# nuget teamcity f#-fake


【解决方案1】:

我将在下面创建一个类似这样的函数并将其放在您的 NuGet 目标上方:

let getTeamCityBuildNumberOrDefault() =
    match TeamCityHelper.TeamCityBuildNumber with
    | Some v -> v
    | None -> "0.0.1"

然后在您的NuGet 目标中使用它来代替TeamCityHelper.TeamCityBuildNumber

【讨论】:

  • 啊哈!谢谢,我试过这样的方法,但我的语法有点错误。
【解决方案2】:

您是否尝试过类似的方法:

NuGet (fun p ->
    match TeamCityHelper.TeamCityBuildNumber with 
    | Some(buildNumber) ->
        {p with
            Authors = authors
            Project = projectName
            Description = projectDescription
            OutputPath = packagingRoot
            Summary = projectSummary
            WorkingDir = packagingDir
            Version = buildNumber}
    | None ->
        {p with
            Authors = authors
            Project = projectName
            Description = projectDescription
            OutputPath = packagingRoot
            Summary = projectSummary
            WorkingDir = packagingDir
            Version = "0.0.1"}) "myProject.nuspec"

【讨论】:

  • erf @DaveShaw 的回答更好.. :)
猜你喜欢
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多