Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Bu makale, eski SOAP istemcilerini kullanarak Azure DevOps Server ve Azure DevOps Services ile genişletmeyi ve tümleştirmeyi gösteren örnekler içerir. Bu istemciler yalnızca istemcilerin .NET Framework sürümünde kullanılabilir.
Önemli
Yeni geliştirme için bkz. .NET istemci kitaplıklarında açıklanan JSON tabanlı istemciler.
Önkoşullar
Bu sayfadaki örnekler için aşağıdaki NuGet paketleri gerekir:
- Microsoft.TeamFoundationServer.ExtendedClient
- Microsoft.TeamFoundationServer.Client
- Microsoft.VisualStudio.Services.Client
- Microsoft.VisualStudio.Services.InteractiveClient
Örnek: SOAP tabanlı istemci kullanma
// 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);
}
}
}
}
Kimlik doğrulama
Kimlik doğrulama yöntemini Azure DevOps olarak değiştirmek için, oluştururken VssConnection'a geçirilen VssCredential türünü değiştirin.
SOAP hizmetleri için kişisel erişim belirteci kimlik doğrulaması
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);
}
}
SOAP hizmetleri için Microsoft Entra kimlik doğrulaması
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);
}
}
SOAP hizmetleri için Visual Studio oturum açma istemi (Microsoft Hesabı veya Microsoft Entra destekli)
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);
}
}