min*_*alg 9 msbuild tfs msbuild-task tfsbuild
我一直在使用SVN一段时间.最近我正在使用TFS的一个项目.在构建中,我喜欢在项目输出上追加/更新构建版本号.我在母版页上执行此操作,以便在应用程序中清晰可见.由于应用程序可以在多台计算机上运行,因此它是运行verison的便捷信息.
我在SVN世界中认识到:
<!-- Import of the MSBuildCommunityTask targets -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!-- to AssemblyInfo to include svn revision number -->
<Target Name="BeforeBuild">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(ProgramFiles)\CollabNet Subversion Client">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
<Output TaskParameter="Month" PropertyName="Month" />
<Output TaskParameter="Day" PropertyName="Day" />
</Time>
<FileUpdate Files="MasterPage.master" Regex="svn revision: (\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="svn revision: $(Year).$(Month).$(Day).$(Revision)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
如上所示,"BeforeBuild"任务使用YYYY.MM.DD.SVNVERSION标记更新masterPage.master文件.
如何使用TFS作为源控件来实现此目的.我如何获得TFS内部版本号?
假设您的意思是Team Build,$(BuildNumber)属性包含当前的内部版本号.
有关可用属性的完整参考,请参见http://blogs.msdn.com/aaronhallberg/archive/2008/02/12/team-build-2008-property-reference.aspx.
如果您只是运行MSBuild,我不相信它生成/应用整体构建号(每个项目在其AssemblyInfo.cs [默认情况下]文件中将具有单独的,可能是自动递增的版本号).您可以在运行时使用System.Reflection.Assembly类动态获取特定程序集的此版本号.
从TFS 2010开始,"BuildNumber"变量不再由TFS自动传递给MSBuild进程.TFS 2010现在使用Windows Workflow作为其内部构建引擎,因此如果您需要构建号,则必须修改构建定义以包含它,如本MSDN文章中所述.
| 归档时间: |
|
| 查看次数: |
16455 次 |
| 最近记录: |