Я работаю в довольно большой организации, и мы столкнулись с проблемой, поскольку нам нужно было перенести одно из наших решений.
Подводя итог, у нас есть внутренний инструмент, который просматривает или старый TFS 2013 сервер и анализирует несколько файлов csproj и config для обновления некоторого содержимого, чтобы иметь возможность перенести наши сайты на IIS10 .
Предыдущее решение, которое использовало пакеты NuGet Machado.Microsoft.TeamFoundation и Machado.Microsoft.TeamFoundation.client ( теперь устарело ) и не было больше работает хорошо.
Было решено перенести наше решение на пакеты " Microsoft.TeamFoundation " NuGet. Все идет хорошо вместо части регистрации.
private TfvcChangesetRef Checkin(TfvcItem item, string newContent)
{
// Establish a connection using Windows Credentials
using (var connection = TfsHelper.GetConnection())
// Create TFS Client
using (var tfvcClient = connection.GetClient<TfvcHttpClient>())
{
item.ContentMetadata = new FileContentMetadata();
var changeset = new TfvcChangeset();
var tfvcChange = new TfvcChange(item, versionControlChangeType.Edit);
tfvcChange.NewContent = new ItemContent();
tfvcChange.NewContent.Content = newContent;
tfvcChange.NewContent.ContentType = ItemContentType.RawText;
tfvcChange.Item.Path = item.Path;
var changesList = new List<TfvcChange>();
changesList.Add(tfvcChange);
changeset.Author = new IdentityRef();
changeset.Changes = changesList;
changeset.Comment = "This is a test";
return tfvcClient.CreateChangesetAsync(changeset).Result;
}
}
Определяется TfsHelper.GetConnection()
:
public static VssConnection GetConnection()
{
var connection = new VssConnection(new Uri(ConfigurationManager.AppSettings["TfsUri"]), new VssAadCredential());
connection.ConnectAsync().SyncResult();
// Correctly contains the AAD user account
return connection;
}
Приложение разрывается при вызове tfvcClient.CreateChangesetAsync(changeset)
с набором изменений, состоящим из:
Changes Count = 1 (Correct, one change to be checked in)
Comment "This is a test"
Author typeof(IdentifyRef)
Other values Default ones.
Исключение составляет:
System.AggregateException: 'One or more errors occurred.'
InnerException: VssServiceResponseException: Method Not Allowed
StackTrace of innerException:
at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.<HandleResponseAsync>d__52.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.<SendAsync>d__50.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.<SendAsync>d__47`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.<SendAsync>d__28`1.MoveNext()
Мы уже проверили и внедрили некоторые решения, найденные через Интернет, но в настоящее время ничего не работает. Не могли бы вы понять, что не так или нет?
Спасибо