2017-09-11 52 views
0

我有以下代碼TFS API - 如何確保Workspace.OwnerIdentifier不爲null?

var ws = vcs.GetWorkspace(wsName, vcs.AuthorizedUser); 

然而,ws.OwnerIdentifier是空在這一點上。我接下來得到的值是:

ws.Update(new UpdateWorkspaceParameters { Computer = ws.Computer }); 

然後ws.OwnerIdentifier不再爲空。

在我的方案中,必須有更好的方法來獲得ws.OwnerIdentifier。有任何想法嗎?

我們的後端是TFS 2017年

+0

是什麼版本的SDK你在用嗎?如果你不使用這個,我會先試一下:https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient/ – DaveShaw

+0

TFS 2015,但我可能沒有使用正確的方法。 – mark

回答

0

我可以在安裝NuGet包Microsoft.TeamFoundationServer.ExtendedClient正確地得到ws.OwnerIdentifier值。嘗試版本15.xxx和14.xx,都工作。

你需要指定wsName引號:(See VersionControlServer.GetWorkspace Method (String, String)

var ws = vcs.GetWorkspace("wsName", vcs.AuthorizedUser); 

下面的示例,供您參考:

using System; 
using Microsoft.TeamFoundation.VersionControl.Client; 
using Microsoft.TeamFoundation.Client; 

namespace _0912_GetWorkSpaceIdentifier 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string collection = @"http://server:8080/tfs/DefaultCollection"; 
      var tfsServer = new Uri(collection); 
      var tpc = new TfsTeamProjectCollection(tfsServer); 
      var vcs = tpc.GetService<VersionControlServer>(); 
      var ws = vcs.GetWorkspace("LC0706-2", vcs.AuthorizedUser); 
      var idf = ws.OwnerIdentifier; 

      Console.WriteLine(idf); 
     } 
    } 
} 

enter image description here

+0

這是我有的相同的代碼。你的意思是ExtendedClient提供相同的API,但不同的實現? – mark

+0

@mark不,我剛剛檢查了'GetWorkspace'方法來獲取'ws.OwnerIdentifier',並且該值不是'Null'。通常情況下,如果工作區在那裏,則爲方法指定正確的條件後,將檢索 值。所以,如果你仍然得到空值,你可以嘗試_ ** ExtendedClient ** _,因爲它對我有相同的代碼。您也可以嘗試其他[重載](https://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver.getworkspace%28v=vs.120%29.aspx?f=255&MSPPError = -2147217396)例如'GetWorkspace(String)' –

相關問題