使用MSXML 6编写XML文件时,Inno Setup Error 255

时间:2014-09-25 09:16:37

标签: xml inno-setup ole msxml

我正在尝试将一些“变量”子项添加到十几个xml文件中的“变量”节点。

这就是XML文件的样子:

<?xml version="1.0" encoding="UTF-8"?>
<agent-input>
    <variables>
    </variables>
    <server>...

这是我的创新设置代码:

procedure AddVariablesToXML(const AFileName: String);
var
  XMLNode, XMLDocument, XMLNodeVariable: Variant; 

begin
  XMLDocument := CreateOleObject('Msxml2.DOMDocument.6.0');
  try
    XMLDocument.async := False;
    XMLDocument.resolveExternals := False;
    XMLDocument.load(AFileName);
    if (XMLDocument.parseError.errorCode <> 0) then
      MsgBox('Erreur au parsing du fichier XML : ' + AFileName + 
        XMLDocument.parseError.reason, mbError, MB_OK)
        //TODO GestionErreur
    else
    begin
      XMLDocument.setProperty('SelectionLanguage', 'XPath');
      XMLDocument.selectNodes('//agent-input//variables//variable').removeAll();

      LOG(AFileName);
      LOG('1');

      XMLNode := XMLDocument.selectSingleNode('//agent-input//variables');

      LOG('2');

      XMLNodeVariable := XMLDocument.createElement('variable');
      XMLNodeVariable.setAttribute('name', 'Computer');
      XMLNodeVariable.setAttribute('value', 'TEST');
      XMLNode.appendChild(XMLNodeVariable);

      LOG('3');

      XMLNodeVariable := XMLDocument.createElement('variable');
      XMLNodeVariable.setAttribute('name', 'DomaineDNS');
      XMLNodeVariable.setAttribute('value', 'TEST');
      XMLNode.appendChild(XMLNodeVariable);  

      LOG('4');

      XMLDocument.save(AFileName);
    end;

  except
    MsgBox('An error occured! \line' + GetExceptionMessage, mbError, MB_OK);
    //TODO GestionErreur
  end;
end;

这对前2个文件工作正常但在LOG 2之后的第3个文件崩溃; 我已经尝试将第3个文件更改为可以查看该文件中的某些内容是否有责任但是它在完全相同的位置崩溃的文件...

我所拥有的只是安装程序退出代码:255

我的问题似乎不像我在SO上找到的那些:

Inno Setup crashes in appendChild msxml

Adding nodes to xml with DOM in inno Setup - strange problems

0 个答案:

没有答案