获取Visual Studio变更集作为修订的一部分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取Visual Studio变更集作为修订的一部分相关的知识,希望对你有一定的参考价值。
多年来我一直在使用Subversion。我发布的软件版本号格式为X.X.X. {SVN REV},我在Visual Studio中使用预构建事件来填充c#修订文件:
namespace Revision
{
internal static class Svnstrings
{
static public int WCREV = 1959;
static public string WCDATE = "2017/12/08 21:48:52";
static public string WCNOW = "2017/12/28 14:01:35";
static public string WCRANGE = "1949:1959";
static public string WCMIXED = "Mixed update revision";
static public string WCMODS = "Modified";
static public string WCURL = "https://app.deveo.com/SrcCtrl/projects/myProject/repositories/subversion/myProject/trunk/mySource/myProject/Revision";
static public string WCINSVN = "Versioned";
static public string WCNEEDSLOCK = "Lock not required";
static public string WCISLOCKED = "Not Locked";
static public string WCLOCKDATE = "1970/01/01 00:00:00";
static public string WCLOCKOWNER = "";
static public string WCLOCKCOMMENT = "";
}
}
我最近切换到Visual Studio TFS进行源代码控制,我想做类似的事情,在WCREV中获取changeset值。
也许这过于复杂,但在使用Subversion 10年以后仍在学习新的源代码控制,并且仍在学习基础知识,也许有人有更好的想法。
与SVN不同,我们没有与TFS一起安装WCREV.exe
。
在TFS中,最简单的方法是使用内部版本号作为版本号。有一个全局.NET版本策略:AssemblyInformationalVersion。您可以使用此策略为您的软件添加版本控制。你可以使用powershell script来版本化你的程序集。
powershell脚本将在后台运行魔术,根据此产品版本替换Assembly Info文件中AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion的所有版本控制值。产品版本将作为整体传递给AssemblyVersion和AssemblyInformationalVersion属性。 AssemblyFileVersion将替换为完整版本号,该版本号将包含产品版本的主要版本号和次要版本号,基于Julian的日期和增量版本号。
对于Assembly File Version = 2.7.15169.03的含义
- 2 =>取自“主要”产品版本
- 7 =>取自“次要”产品版本
- 15169 =>由构建过程生成:“15”= 2015年,“169”= 2015年的某一天
- 3 =>第三次建造,在2015年第169天开始运行
有关更多详细信息,您可以查看这篇精彩文章:TFS Build 2015 … and versioning!和类似主题vNext Build Awesomeness – Managing Version Numbers
至于你想在你的装配信息中获取/设置变更集编号。
您可以在构建数字格式中使用$(Build.SourceVersion)
来实现此目的,例如
$(BuildDefinitionName)_$(date:yyyyMMdd)_$(Build.BuildId).$(Build.SourceVersion)$(rev:.r)
但是这个$(Build.SourceVersion)只有在提交时自动触发构建时才会起作用(在持续集成时)。因为当你运行手动构建时,你必须输入Source Version字段才能填充它。更多细节请检查:Build.SourceVersion is blank in VSO vNext Build
您还可以使用PowerShell脚本获取源版本变更集编号,并将其应用于您的内部版本号或AssemblyInfo中。
以上是关于获取Visual Studio变更集作为修订的一部分的主要内容,如果未能解决你的问题,请参考以下文章
创建 Visual Studio 扩展时如何获取源代码管理历史记录窗口中的选定项目?
MSTest Visual Studio 2015:未找到测试容器直接或间接引用的程序集或模块“xxxxxxx”