Я выполняю миграцию проектов TFS 2010 в TFS 2015 с помощью TFS API. При попытке позвонить VersionControlServer.GetLatestChangesetId()
и VersionControlServer.QueryHistory(...)
я столкнулся с проблемой.Возможно ли использовать TFS 2015 api для наборов QueryHistory с TFS 2010?
Я использую пакеты Team Foundation Nuget на 2015 год для предоставления DLL.
Исключение я получаю:
'VersionControlServer.GetLatestChangesetId()' threw an exception of type 'System.Xml.XmlException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2146232000
HelpLink: null
InnerException: null
LineNumber: 0
LinePosition: 0
Message: "Unexpected end of file."
Source: "System.Runtime.Serialization"
SourceUri: null
StackTrace: " at System.Xml.EncodingStreamWrapper.ReadBOMEncoding(Boolean notOutOfBand)\r\n at System.Xml.EncodingStreamWrapper..ctor(Stream stream, Encoding encoding)\r\n at System.Xml.XmlUTF8TextReader.SetInput(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)\r\n at Microsoft.TeamFoundation.Client.Channels.TfsSoapMessageEncoder.ReadMessage(Stream stream)\r\n at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.ReadMessage(HttpWebResponse webResponse, WebException webException, Stream responseStream, Boolean& closeResponse)\r\n at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.ReadResponse(HttpWebResponse webResponse, WebException webException)\r\n at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.IsAuthenticationChallenge(TfsMessage requestMessage, HttpWebResponse webResponse, WebException webException, TfsMessage& responseMessage)\r\n at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.SendR
equest()\r\n at Microsoft.TeamFoundation.Client.Channels.TfsHttpRequestChannel.Request(TfsMessage message, TimeSpan timeout)\r\n at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, TimeSpan timeout, Object[]& outputs)\r\n at Microsoft.TeamFoundation.VersionControl.Client.Repository.GetRepositoryProperties()\r\n at Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer.GetLatestChangesetId()"
TargetSite: {SupportedEncoding ReadBOMEncoding(Boolean)}
Исключение составляют в основном одинаковы для QueryHistory
и GetLatestChangesetId
. Из stacktrace похоже, что TFS может обрабатывать кодировку по-разному между 2010 и 2015 годами.
Я ищу решение, которое позволит мне запрашивать как устаревшую TFS 2010, так и нашу новую TFS 2015 через API.
Вы можете попробовать использовать TFS2010 DLLs и TFS2015 Апи https://www.visualstudio.com/ REST интегрировать/api/tfvc/changesets – ds19