Мы используем MSBuild для запуска проекта, который, помимо прочего, считывает некоторые значения из файла XML с помощью задачи XMLQuery из пакета Community Tasks.Он работал нормально под MSBuild 3.5, но при запуске под 4.0 он выходит со следующим сообщением:
ошибка MSB4018: Задача «XmlQuery» неожиданно завершилась неудачно.System.Xml.XmlException: имя не может начинаться с символа «%», шестнадцатеричное значение 0x25.Строка 1, позиция 2. в System.Xml.XmlTextReaderImpl.Throw (исключение e) в System.Xml.XmlTextReaderImpl.Throw (String res, String [] args) в System.Xml.XmlTextReaderImpl.ParseQName (Boolean isQName, Int32 startOffsetInt32 & colonPos) в System.Xml.XmlTextReaderImpl.ParseElement () в System.Xml.XmlTextReaderImpl.ParseDocumentContent () в System.Xml.XmlTextReaderImpl.Read () в System.Xml.XPath.XLoDaderSpaceReader XSath.ReaderFirectorySpace XRath.в System.Xml.XPath.XPathDocument..ctor (TextReader textReader) в MSBuild.Community.Tasks.Xml.XmlQuery.loadXmlContent () в MSBuild.Community.Tasks.Xml.XmlQuery.Execute () в Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () в Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext, логика для задачиспользуется для вызова XMLQuery из цели сборки:
<!-- Read XML report -->
<ReadLinesFromFile File="coverageXML\symbolmodule.xml">
<Output TaskParameter="Lines" ItemName="XmlReportLines" />
</ReadLinesFromFile>
<!-- Get number of visited sequence points -->
<XmlQuery Lines="@(XmlReportLines)" XPath="/trendcoveragedata/stats/@vsp">
<Output TaskParameter="Values" PropertyName="VisitedSequencePoints" />
</XmlQuery>
Я просто не могу понять, что не так.XML-файл совершенно корректен, и XPath, указанный в XMLQuery, должен возвращать значение (и всегда имеет).Я нигде не могу найти ни одного символа% .
Я не уверен, как и с чего начать устранение этой проблемы ... Любые указатели в правильном направлении приветствуются.