1

有没有人知道如何将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:引用未知符号 LastChangeNumber

4

1 回答 1

3

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

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

使用自定义贴标机:

<labeller type="assemblyVersionLabeller">
  <major>2</major>
  <minor>0</minor>
</labeller>
于 2009-09-22T21:52:10.300 回答