0

API を介して WorkItems を作成および変更する WebApplication があります。「ChangedBy」フィールドを特定の文字列値に設定したい。これは TFS 2013 でうまく機能しました。TFS 2015 にアップグレードした後、私の値は無視され、ChangedBy は常に TFS への接続に使用するユーザーの ID に設定されます。

これは私のコードです:

//Set some values on the WorkItem
item.Fields["ChangedBy"].Value = "MyUserName";
item.Save();

TFS 2013 のように動作を強制する方法はありますか?

4

1 に答える 1

0

このブログによると、デフォルトでは、Changed By フィールドは編集不可フィールドの 1 つです (システムによって設定されます)。これを変更するには、 BypassRuleモードで WorkItemStore オブジェクトを操作する必要があります。バイパス ルールを使用すると、作業項目フィールドを制限なしで変更できるため、[変更者]フィールドを変更できます。

コードを次のように定義します。

 TfsTeamProjectCollection tfctc = new TfsTeamProjectCollection(new Uri("http://servername:8080/tfs/DefaultCollection"));
        WorkItemStore workItemStore = new WorkItemStore(tfctc, WorkItemStoreFlags.BypassRules);
        WorkItem workItem = workItemStore.GetWorkItem(workitemid);
        string changedBy = (string)workItem.Fields["Changed By"].Value;
        workItem.Fields["Changed By"].Value = "User Name";
于 2015-09-30T05:47:59.893 に答える