代码之家  ›  专栏  ›  技术社区  ›  John Gietzen

ccnet:如何将svn版本号复制到msbuild中的文件?

  •  1
  • John Gietzen  · 技术社区  · 15 年前

    有人知道怎么通过 LastChangeNumber 参数到msbuild?

    我想用这个:

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

    如果将lastChangeNumber参数从msbuild中删除,则成功忽略该条件;如果传入类似的bunk参数,则成功 /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>
    

    我的CruiseControl.net服务器日志中出现错误:

    thoughtworks.cruisecontrol.core.config.preprocessor.evaluationexception:异常: 对未知符号的引用 上次更改编号

    1 回复  |  直到 8 年前
        1
  •  3
  •   John Gietzen    15 年前

    嗯,我找到了一种方法:

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

    使用定制贴标机:

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