在C#文件中设置TFS Build的版本号

时间:2013-05-28 10:00:51

标签: c# .net tfs tfsbuild

HY,

是否可以在C#文件中设置TFS Build的编号?

TFS Build应将版本号替换为当前版本号。

  

public const string SERVICE_VERSION =“2.0 Build:20130518.1”;

编辑: const位于一个名为SharedMethods的类中:

public static class SharedMethods 
{
    public const string SERVICE_VERSION = "2.0 Build: 20130518.1";
    ...
    ...
}

TFS构建应该检查元素,更新版本,签入元素并继续正常的构建过程。

2 个答案:

答案 0 :(得分:3)

查看这篇文章: Create a Custom WF Activity to Sync Version and Build Numbers

它描述了如何更改AssemblyInfo.cs文件中的版本号。您可以调整它以满足您的需求。

答案 1 :(得分:2)

如果你的文件只包含这些行,也许你可以这样做:

    <WriteLinesToFile File="$(VersionFilePath)" Lines="public const string SERVICE_VERSION = %22$(Version)%22%3B" Overwrite="true" Encoding="ASCII"/>

请注意“应该用%22替换;用%3B替换(当你添加';'时,插入一个新行char)。

否则,您可以在msbuild中编写C#代码来执行您想要的操作。一个例子:

<UsingTask TaskName="UpdateApplicationRevision" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
   <ParameterGroup>
        <ProjectFilePath ParameterType="System.String" Required="true" />
    </ParameterGroup>
        <Task>
          <Reference Include="$(MSBuildToolsPath)\Microsoft.Build.dll" />
          <Reference Include="System.Xml" />
        <Code Type="Fragment" Language="cs">
            <![CDATA[
      var project = new Microsoft.Build.Evaluation.Project(ProjectFilePath);
      var property = project.GetProperty("ApplicationRevision");
      property.UnevaluatedValue = "" + (System.Int32.Parse(property.EvaluatedValue) + 1);
      project.Save();
]]>
        </Code>
    </Task>
</UsingTask>

在这里,我修改了一个csproj(xml)文件,但是可以随意编写自己的代码来读取文件并更新它...