我的问题是Inno Setup的延续-读取XML文件中的节点值时出现“变量为null,无法调用”错误。在这篇文章中,我正在读取一个XML文件节点,并能够使用该过程成功获取该值,ProcGetWebAppNameFromXML
并且试图将该值传递给该[Icons]
部分,但是我已经空了。
该代码段如下所述。
[Run]
Filename: "{app}\test1.bat"; StatusMsg: "Running Services..."; \
BeforeInstall: ProcGetWebAppNameFromXML;
[Icons]
Name: "{commondesktop}\App"; Filename: "{pf}\Internet Explorer\iexplore.exe"; \
Parameters: """http://{code:GetWebAppNameFromXML|}/"""
该过程ProcGetWebAppNameFromXML
获取webapp名称(可以正常工作),我将其分配给全局变量。
[Code]
var
WebAppNameFromXML: String;
procedure ProcGetWebAppNameFromXML();
var
...
...
WebAppNameFromXML := LoadValueFromXML(applicationxmlFile, '//ns:application-name', 'application-name');
Log('WebApp name is logged correctly here..' + WebAppNameFromXML);
end;
我正在使用下面提到的函数来分配值。
function GetWebAppNameFromXML(Default: String): String;
begin
Result := WebAppNameFromXML;
end;
当我将函数传递GetWebAppNameFromXML
给该Icons
部分时,我变得空着。请注意,我[Icons]
在本[Run]
节的下面,并且我也使用ChangesAssociations=yes
过。
提前致谢。
该[Run]
部分作为最后一个处理。所以[Icons]
节后。请参阅https://jrsoftware.org/ishelp/index.php?topic=installorder
看来您实际上还是在滥用它。
呼叫ProcGetWebAppNameFromXML
在CurStepChanged(ssInstall)
。
或者,如果仅需要WebAppNameFromXML
您的[Icons]
部分,则直接在其中阅读XML GetWebAppNameFromXML
–并且您不需要任何全局变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句