2017-09-11 9 views
0

、私は次のコードTFS API - Workspace.OwnerIdentifierがnullでないことを確認する方法

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

を持っているしかし、ws.OwnerIdentifierは、この時点ではnullです。私は値を取得するために、次のやっていることは次のとおりです。

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

そしてws.OwnerIdentifierもはやヌルではありません。

私のシナリオではws.OwnerIdentifierを取得するより良い方法が必要です。何か案は?

私たちのバックエンドは、私がインストールさNuGetパッケージMicrosoft.TeamFoundationServer.ExtendedClientで正しくws.OwnerIdentifier値を得ることができますTFS 2017

+0

あなたは使っていますか?これを使用していない場合は、まず最初に試してみます:https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient/ – DaveShaw

+0

TFS 2015が正しい方法を使用していない可能性があります。 – mark

答えて

0

です。バージョン15.xxxと14.xxで試してみたが、どちらもうまくいった。あなたの参照用のサンプル以下(See VersionControlServer.GetWorkspace Method (String, String)

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

あなたが引用符でwsNameを指定する必要があるSDKのバージョンは何

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'ではありません。通常は、ワークスペースが存在する場合にメソッドの正しい条件を指定すると、値 を取得します。だから、あなたがまだ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)' –

関連する問題