一旦超过65,535个变更集,就会意识到这将停止工作.也许你想更新其他一些领域.顺便说一句,是的,构建工程是工程.指出解决方案并告诉它构建只是旅程的开始.
最后,我的一位同事编写了以下 MSBuild 任务来解决该问题。
public class GetNextBuildNumber : Task
{
[Required]
public string TfsCommand { get; set; }
[Required]
public string TfsArgument { get; set; }
[Output]
public int BuildNumber { get; set; }
public override bool Execute()
{
BuildNumber = GetLatestVersionNumber();
return true;
}
private int GetLatestVersionNumber()
{
var process = new RunProcess();
var result = process.ExecuteCommand(TfsCommand, TfsArgument);
return ParseResult(result);
}
private int ParseResult(string result)
{
const string changeset = "Changeset:";
const string user = "User:";
if (string.IsNullOrEmpty(result) || !result.Contains(changeset))
{
// Invalid result
Log.LogWarning("Could not get latest build number. Reason: " + result);
return 0;
}
var indexOfChangeset = result.IndexOf(changeset, StringComparison.InvariantCulture) + changeset.Length;
var indexOfUser = result.IndexOf(user, StringComparison.InvariantCulture);
var revision = result.Substring(indexOfChangeset, indexOfUser - indexOfChangeset).Trim();
return Convert.ToInt32(revision);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11579 次 |
| 最近记录: |