2
我想簽入一個C#程序中的一部分TFS存儲庫中的代碼,這將觸發一個門控簽入版本,也是一個持續集成構建。
這是我到目前爲止的代碼:如何以編程方式簽入帶有策略覆蓋的TFS代碼?
public static void Checkin(string path, string comment)
{
var wsInfo = Workstation.Current.GetLocalWorkspaceInfo(path);
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(wsInfo.ServerUri);
tfs.Connect(ConnectOptions.None);
var vcs = tfs.GetService<VersionControlServer>();
var ws = vcs.GetWorkspace(path);
var fullPath = Path.GetFullPath(path);
var change = ws.GetPendingChangesEnumerable().Where(p => p.LocalItem == fullPath).ToArray();
ws.CheckIn(change.ToArray(), comment);
tfs.Dispose();
}
什麼基本情況是,我得到一個GatedCheckinException說,有受影響的構建確定指標。 我想用常用的旁路進行檢查,以避免觸發門控檢入。我一直在努力與altenate簽入功能沒有成功。
任何想法?
更新: 感謝Aghilas Yakoub的鏈接。 爲了完整起見,這裏是代碼做簽入與覆蓋爲我工作:
var wip = new WorkspaceCheckInParameters(change, comment)
{
OverrideGatedCheckIn = ((CheckInOptions2)vcs.SupportedFeatures & CheckInOptions2.OverrideGatedCheckIn) == CheckInOptions2.OverrideGatedCheckIn,
PolicyOverride = new PolicyOverrideInfo("Check-in from the build.", null)
};
ws.CheckIn(wip);
如何對財產**字符串評論最大長度(限制)* *? https://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.workspacecheckinparameters.comment(v=vs.110).aspx – Kiquenet