Мы используем MSBuild для запуска проекта, который, помимо прочего, читает некоторые значения из XML-файла с помощью задачи XMLQuery из задач сообщества пакет. Он работал нормально в MSBuild 3.5, но при запуске под 4.0 он терпит неудачу со следующим сообщением:MSBuild 4.0 сбой при выполнении задачи XMLQuery (из пакета задач сообщества MSBuild) с ошибкой MSB4018
ошибка MSB4018: задача «XmlQuery» неожиданно завершилась. System.Xml.XmlException: Имя не может начинаться с символа '%', шестнадцатеричного значения 0x25. Строка 1, позиция 2. в System.Xml.XmlTextReaderImpl.Throw (Exception е) в System.Xml.XmlTextReaderImpl.Throw (String разрешением, String [] арг) в System.Xml.XmlTextReaderImpl.ParseQName (Boolean isQName, Int32 startOffset, Int32 & colonPos) на System.Xml.XmlTextReaderImpl.ParseElement() в System.Xml.XmlTextReaderImpl.ParseDocumentContent() в System.Xml.XmlTextReaderImpl.Read() в System.Xml.XPath.XPathDocument. LoadFromReader (считыватель XmlReader, XmlSpace пространство) в System.Xml.XPath.XPathDocument..ctor (ЧтениеТекста 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 taskLoggingContext, TaskHost taskHost, ItemBucket ведро, TaskExecutionMode howToExecuteTask, Boolean & taskResult)
код, используемый для вызова 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, должен возвращать значение (и всегда имеет). Я не могу найти ни одного символа% в любом месте.
Я не уверен, как и где начать устранение этой проблемы ... Любые указатели в правильном направлении оцениваются.
Я заметил, что можно фактически отлаживать проекты MSBuild с помощью Visual Studio 2010, поэтому я попытаюсь посмотреть, дает ли это больше информации – Mels