0

我正在尝试为 Azure DevOps Server 更新内部开发的插件。以前公司使用的是 TFS 2017,并且插件工作正常。现在,它启动了(我通过 EventLog 中的消息看到它),但有一个问题,即函数 ServerItemExists 返回“False”,但实际上文件存在。

我发现有关 versionControl TfsConfigurationServer.GetService() 总是返回 null 的问题(TfsConfigurationServer.GetService<VersionControlServer>() 总是返回 null),但似乎不是我的情况。这里代码如下

            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# 的新手,似乎很难意识到出了什么问题。

4

0 回答 0