Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Dieser Artikel enthält Beispiele, die Ihnen zeigen, wie Sie azure DevOps Server und Azure DevOps Services mithilfe der älteren SOAP-Clients erweitern und integrieren. Diese Clients sind nur in der .NET Framework-Version der Clients verfügbar.
Wichtig
Informationen zur neuen Entwicklung finden Sie in den JSON-basierten Clients, die in .NET-Clientbibliotheken beschrieben sind.
Voraussetzungen
Beispiele auf dieser Seite erfordern die folgenden NuGet-Pakete:
- Microsoft.TeamFoundationServer.ExtendedClient
- Microsoft.TeamFoundationServer.Client
- Microsoft.VisualStudio.Services.Client
- Microsoft.VisualStudio.Services.InteractiveClient
Beispiel: Verwenden des SOAP-basierten Clients
// https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient/
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
/// <summary>
/// This sample creates a new work item query under 'MyQueries', runs the query, and then sends the results to the console.
/// </summary>
public static void SampleSOAP()
{
// create TfsTeamProjectCollection instance using default credentials
using (TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(collectionUri)))
{
// get the WorkItemStore service
WorkItemStore workItemStore = tpc.GetService<WorkItemStore>();
// get the project context for the work item store
Project workItemProject = workItemStore.Projects[teamProjectName];
// search for the 'My Queries' folder
QueryFolder myQueriesFolder = workItemProject.QueryHierarchy.FirstOrDefault(qh => qh is QueryFolder && qh.IsPersonal) as QueryFolder;
if (myQueriesFolder != null)
{
// search for the 'SOAP Sample' query
string queryName = "SOAP Sample";
QueryDefinition newBugsQuery = myQueriesFolder.FirstOrDefault(qi => qi is QueryDefinition && qi.Name.Equals(queryName)) as QueryDefinition;
if (newBugsQuery == null)
{
// if the 'SOAP Sample' query does not exist, create it.
newBugsQuery = new QueryDefinition(queryName, "SELECT [System.Id],[System.WorkItemType],[System.Title],[System.AssignedTo],[System.State],[System.Tags] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'New'");
myQueriesFolder.Add(newBugsQuery);
workItemProject.QueryHierarchy.Save();
}
// run the 'SOAP Sample' query
WorkItemCollection workItems = workItemStore.Query(newBugsQuery.QueryText);
foreach (WorkItem workItem in workItems)
{
// write work item to console
Console.WriteLine("{0} {1}", workItem.Id, workItem.Fields["System.Title"].Value);
}
}
}
}
Authentifizierung
Um die Authentifizierungsmethode für Azure DevOps zu ändern, ändern Sie den VssCredential-Typ, der beim Erstellen an Vss Verbinden ion übergeben wurde.
Authentifizierung des persönlichen Zugriffstokens für SOAP-Dienste
public static void PersonalAccessTokenSoapSample()
{
// Authenticate using Personal Access Token
VssBasicCredential vssBasicCredential = new VssBasicCredential(string.Empty, pat);
using (TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(collectionUri), vssBasicCredential))
{
tpc.Authenticate();
Console.WriteLine(tpc.InstanceId);
}
}
Microsoft Entra-Authentifizierung für SOAP-Dienste
public static void AADSoapSample()
{
// Authenticate using Azure Active Directory credential (requires a Azure AD-backed organization)
using (TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(collectionUri), new VssAadCredential()))
{
tpc.Authenticate();
Console.WriteLine(tpc.InstanceId);
}
}
Visual Studio-Anmeldeaufforderung (Microsoft-Konto oder Microsoft Entra gesichert) für SOAP-Dienste
public static void MicrosoftAccountSample()
{
// authenticate using Visual Studio sign-in prompt
using (TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(collectionUri), new VssClientCredentials()))
{
tpc.Authenticate();
Console.WriteLine(tpc.InstanceId);
}
}