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构建应该检查元素,更新版本,签入元素并继续正常的构建过程。
答案 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)文件,但是可以随意编写自己的代码来读取文件并更新它...