TFS ServerItemExists метод versionControlServer возвращает файл не существует, пока он присутствует
Я пытаюсь обновить собственный плагин для Azure DevOps Server. Ранее компания использовала TFS 2017, и плагин работал правильно. Теперь он запускается (я вижу это через сообщения в EventLog), но есть проблема, что функция ServerItemExists возвращает "False", но на самом деле файл присутствует.
Я обнаружил проблемы с этим versionControl TfsConfigurationServer.GetService() всегда возвращает ноль ( TfsConfigurationServer.GetService
var configFileServerPath = $"$/{projectName}/AutoCodeReview.xml";
var versionControlServer = projectCollection.GetService<VersionControlServer>();
writeLog(EventLogEntryType.Information, $"Details. configFileServerPath: {configFileServerPath}. versionControlServer.TeamProjectCollection.Name: {versionControlServer.TeamProjectCollection.Name}");
bool ItemExists = versionControlServer.ServerItemExists(configFileServerPath, ItemType.File);
writeLog(EventLogEntryType.Information, $"Item existence: {ItemExists}");
if (!ItemExists)
{
writeLog(EventLogEntryType.Information, $"return, not item exists");
return null;
}
Поэтому я использую EventViewer в качестве чего-то похожего на отладочный вывод, и я вижу, что у меня есть сообщение как "Предмет существования ложь". Но файл существует!
Мои предложения в определении пути. URL в браузере элемента выглядит следующим образом: http://tfs1:8080/tfs/DefaultCollection/Project1/_versionControl?path=%24%2FProject1%2FAutoCodeReview.xml
Как я выяснил с помощью EventVwr, это пути:
configFileServerPath $/Project1/AutoCodeReview.xml
TeamProjectCollection.Name http://tfs1:8080/tfs/DefaultCollection/
Так что это прекрасно работает в TFS 2017 и показывает, что в Azure DevOps Server 2019 нет файла. Поскольку я новичок в C#, кажется, что трудно понять, что не так.