使用当前日期/时间设置FileVersionInfo并使用CruiseControl.NET设置标签

时间:2010-01-27 17:07:04

标签: cruisecontrol.net

我一直在研究以下内容:

  1. 使用现有的AssemblyInfo.cs文件将AssemblyFileVersion更改为当前日期和时间,即。 YYMM.DD.HH.MM
  2. 获取(1)中使用的日期和时间并用它标记源代码(在SourceSafe中)
  3. 我设法让MSBuild文件和CC集成,但我需要传递一个变量,然后我可以传递给CC任务,以便在构建完成时标记sourcesafe。

    有什么想法吗?

2 个答案:

答案 0 :(得分:0)

一个想法是让你的MSBuild创建一个环境变量与它的标签,然后它将在该项目的所有后续任务中可用。但是我想知道为什么你会以这种格式使用日期时间,因为所有意图和目的的两个点都已经有了日期。为什么不使用像build编号这样的有意义的标签,然后让MSBuild从状态文件中获取标签格式并使用它来更新Assembly信息。然后你的贴标机就会使用它。无需保留和转移。我说时间/日期无关紧要的原因是正常的过程都会准备好告诉你标签和exe的创建日期/时间。为什么要两次?

答案 1 :(得分:0)

根据我的经验,CCNet通常会生成内部版本号(在您的情况下,基于当前日期和时间)。您将需要在ccnet.config文件中使用Date Labeller

MSBuild Community Tasks Project中有一个AssemblyInfo任务。您可以指定目标AssemblyInfo.cs文件以及要分配给哪些属性的值。

CCNet生成的构建标签通过$(CCNetLabel)变量传递给MSBuild。这在CCNet调用MSBuild时自动完成,因此您可以在MSBuild文件中开始使用$(CCNetLabel)。这照顾了上面的#1。

对于#2,您需要在ccnet.config文件的SourceControl块中添加它:

<applyLabel>True</applyLabel>

如果构建成功,这将导致版本作为Visual SourceSafe中的标签应用。