【问题标题】:CCNet: How Do I copy the svn revision number to a file in MSBuild?CCNet:如何将 svn 修订号复制​​到 MSBuild 中的文件中?
【发布时间】:2009-09-22 18:36:16
【问题描述】:

有人知道如何将LastChangeNumber 参数传递到MSBuild 中吗?

我正在尝试使用这个:

<Exec Condition=" '$(LastChangeNumber)' != '' " Command=">\\server\destination\subversion_revision.txt echo subversion $(LastChangeNumber)" />

如果我从 MSBuild 中省略 LastChangeNumber 参数,则成功忽略条件,如果我传入像 /p:LastChangeNumber=foo 这样的双层参数,则成功。但是,当我尝试这样做时:

  <msbuild>
    <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
    <projectFile>MySolution.sln</projectFile>
    <buildArgs>/noconsolelogger /p:Configuration=Debug /p:LastChangeNumber=$(LastChangeNumber) /v:diag</buildArgs>
    <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
  </msbuild>

我的 CrusieControl.NET 服务器日志中出现错误:

ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: 引用未知符号 上次更改编号

【问题讨论】:

    标签: svn msbuild continuous-integration cruisecontrol.net ccnet-config


    【解决方案1】:

    好吧,我找到了一种方法:

    <Exec Command=">$(DeployDir)label.txt echo subversion $(CCNetLabel)" />
    

    使用自定义标签器:

    <labeller type="assemblyVersionLabeller">
      <major>2</major>
      <minor>0</minor>
    </labeller>
    

    【讨论】:

    • $(LastChangeNumber) 已设置或 CCNet 调用的进程。该过程本身必须替换环境变量。这似乎不是由 msbuild 完成的。因此,您的解决方案似乎至少是使其发挥作用的一种方法。
    猜你喜欢
    • 2015-10-09
    • 2023-03-11
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多