Корневой элемент отсутствует при преобразовании простой конфигурации с помощью Remove

У меня есть простой XML

<?xml version="1.0"?> 
<rootElement>
 ...
</rootElement>

И я преобразовываю это с:

<?xml version="1.0"?> 
<rootElement xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="Remove">
 ...
</rootElement>

И тогда я получаю это исключение во время сборки:

Exception while replacing configuration-variables in: D:\...\rootelement.config
17:52:12Error
System.Xml.XmlException: Root element is missing.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
17:52:12Error
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
17:52:12Error
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
17:52:12Error
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
17:52:12Error
   at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
17:52:12Error
   at Calamari.Integration.ConfigurationVariables.ConfigurationVariablesReplacer.ReadXmlDocument(String configurationFilePath) in Y:\work\14ffc968155e4956\source\Calamari\Integration\ConfigurationVariables\ConfigurationVariablesReplacer.cs:line 62

Обратите внимание, у меня есть около 10 других похожих конфигурационных файлов, которые преобразуются без проблем, но это единственный файл, который выполняет "Удалить" вместо "Заменить", поэтому я подозреваю, что это может быть проблемой.

Кроме того, когда я просматривал трансформацию локально, она работает нормально, так что, возможно, это проблема развертывания Octopus и этой библиотеки Calamari.

1 ответ

Для документов XML требуется корневой элемент, поэтому в результате преобразования получается недопустимый документ XML.

Эта ошибка возникает после преобразования, когда Octopus пытается заменить переменные в файле. XML-документ недействителен, поэтому его нельзя загрузить.

Преобразование необходимо изменить, чтобы оно привело к действительному документу XML.

Другие вопросы по тегам