2013-05-28 40 views
3

Hy,在C#文件中設置TFS Build的版本號

是否可以在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構建應該檢查出的元素,更新版本,在元素檢查,並繼續正常建立過程。

+0

您是指自定義構建任務,還是來自正在構建的程序集中的代碼? –

+0

來自自定義構建任務 – Bernhard

回答

2

如果您的文件僅包含論文線,也許你可以做這樣的事情:

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

注意,「應該由%22替代,並且,通過%3B(當您添加一個‘;’,新行字符插入)

否則,您可以編寫C#代碼中的MSBuild做你想要的東西爲例:。

<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)文件,但隨時可以寫信Ë自己的代碼來閱讀您的文件和更新...

+0

不幸的是,該文件不僅包含這些行。字符串const是一個名爲SharedMethods的靜態類 – Bernhard

+0

也許你可以使用分部類來解決這個問題... – Philippe

相關問題