2016-09-25 15 views
0

Powershell 3とNuget PackagesのMicrosoftのアセンブリを使用して新しいRest Apiとやり取りするPowerShellモジュールを作成しようとしています.TeamFoundationServer.ExtendedClient ' 15.104.0-preview 641 2016年8月22日月曜日Powershellで 'Microsoft.TeamFoundationServer.ExtendedClient'を使用してPowerShellでTFS 2015 RestApiを使用できない

さらにいくつかのモジュールがインストールされています。

私は基本的なテストを行い、Add-Typeでアセンブリをロードした後、次のアセンブリがロードされました。私は私がBuildHttpClienおよびIを作成しようとしたすべてのDLLをロードした後Newtonsoft.Json.dllバージョン6.0.8

Add-Type -Path 'D:\Temp\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll' 

をロードする必要がSystem.Web.Httpをロードするために

Microsoft.VisualStudio.Services.Common - 15.104.25618.0 
Microsoft.VisualStudio.Services.WebApi - 15.104.25618.0 
Microsoft.VisualStudio.Services.Client - 15.104.25618.0 
Microsoft.TeamFoundation.Common - 15.104.25618.0 
Microsoft.TeamFoundation.Client - 15.104.25618.0 
Microsoft.TeamFoundation.VersionControl.Client - 15.104.25618.0 
Microsoft.TeamFoundation.WorkItemTracking.Client - 15.104.25618.0 
Microsoft.TeamFoundation.Build.Client - 15.104.25618.0 
Microsoft.TeamFoundation.Build.Common - 15.104.25618.0 
Microsoft.TeamFoundation.Build2.WebApi - 15.104.25618.0 
Microsoft.TeamFoundation.DistributedTask.WebApi - 15.104.25618.0 
Newtonsoft.Json - 8.0.3.19514 
System.Web.Http - 5.2.20826.0 

エラーが発生します。私はこのコードを実行すると

$cre = New-Object -TypeName 'Microsoft.VisualStudio.Services.Common.VssCredentials' -ArgumentList (Get-Credential) 
$build = New-Object -TypeName 'Microsoft.TeamFoundation.Build.WebApi.BuildHttpClient' -ArgumentList ([uri]'{TfsCollectionUrl}'),$cre 

、私はPowerShellの3.0互換でPowerShellのISEで上記のコードを試してみました次のエラー

Method not found: 'Newtonsoft.Json.JsonSerializerSettings System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.get_SerializerSettings()'. (raised by: New-Object) 

を得ました。

答えて

0

Nuget Packages 'Microsoft.TeamFoundationServer.ExtendedClient' 15.104.0プレビューは、Microsoft Team Foundation Server拡張クライアントのプレリリースバージョンです。最新の安定版14.102.0を使用することをお勧めします。

0

"System.Net.Http.Formatting"と "Newtonsoft.Json"はMicrosoft.AspNet.WebApi.Clientパッケージで利用できます。取得したエラーを修正するには、このナゲットパッケージをインストールし、PowerShellからこれらの2つのリファレンスをロードします。

Add-Type -Path 'D:\Temp\Microsoft.AspNet.WebApi.Client.5.2.2\lib\net45\System.Net.Http.Formatting.dll' 
Add-Type -Path 'D:\Temp\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll' 
0

プレリリースを使用する必要があります。 TFS 2015.2よりも高バージョンのAPIコールをサポートしています(一部のAPIコールではバージョン3を使用しています)

以下のNugetパッケージを使用しました。それらをダウンロードし、すべての* .dllを1つのフォルダにコピーします。

id            version  
--            -------  
Microsoft.AspNet.WebApi.Client     5.2.2   
Microsoft.AspNet.WebApi.Core      5.2.2   
Microsoft.IdentityModel.Clients.ActiveDirectory 2.22.302111727 
Microsoft.TeamFoundationServer.Client    14.102.0  
Microsoft.TeamFoundationServer.ExtendedClient  14.102.0  
Microsoft.VisualStudio.Services.Client   14.102.0  
Microsoft.VisualStudio.Services.InteractiveClient 14.102.0  
Microsoft.WindowsAzure.ConfigurationManager  1.7.0.0  
Newtonsoft.Json         6.0.8   
System.IdentityModel.Tokens.Jwt     4.0.0   
WindowsAzure.ServiceBus       2.5.1.0  

私はリストを特定の順序で入れた一部の.dllからタイプを追加しました。そのシームは重要な部分です。 NewtonSoft.Jsonが今や最初の仕事です。そのすべての後

Name    Assembly           
----    --------           
NewtonJson  Newtonsoft.Json         
IdentityModel Microsoft.IdentityModel.Clients.ActiveDirectory 
VSCommon   Microsoft.VisualStudio.Services.Common   
VSCommonWebApi Microsoft.VisualStudio.Services.WebApi   
TFCommon   Microsoft.TeamFoundation.Common     
TFClient   Microsoft.TeamFoundation.Client     
VCClient   Microsoft.TeamFoundation.VersionControl.Client 
WITClient  Microsoft.TeamFoundation.WorkItemTracking.Client 
BuildClient  Microsoft.TeamFoundation.Build.Client   
BuildCommon  Microsoft.TeamFoundation.Build.Common   
Build2   Microsoft.TeamFoundation.Build2.WebApi   
DistributedTask Microsoft.TeamFoundation.DistributedTask.WebApi 

、私はいくつかの基本的なタイプを作成することができるよとTFS 2015残りのウェブAPIに私の旅を開始。

$credential = [Microsoft.VisualStudio.Services.Common.VssCredentials]::new($true) 

    PromptType Federated Windows             Storage 
    ---------- --------- -------             ------- 
PromptIfNeeded   Microsoft.VisualStudio.Services.Common.WindowsCredential   

$buildhttpclient = [Microsoft.TeamFoundation.Build.WebApi.BuildHttpClient]::new($tfscollectionuri,$credential) 

$buildhttpclient.GetBuildsAsync('TEAMPROJECTNAME') 



Result     : {31221, 31220, 31219, 31218...} 
Id      : 165004 
Exception    : 
Status     : RanToCompletion 
IsCanceled    : False 
IsCompleted   : True 
CreationOptions  : None 
AsyncState    : 
IsFaulted    : False 
AsyncWaitHandle  : System.Threading.ManualResetEvent 
CompletedSynchronously : False 

[結果]プロパティには、ビルドがあります。

注:Rest Apiは、ビルド結果の数を1000に制限しています。 さらに詳しい情報を得るにはまだ掘り下げています。