【发布时间】:2011-11-15 23:42:12
【问题描述】:
我在 InstallShield 2010 中使用 Basic MSI Project 构建了一个安装程序。
我的设置有自定义对话框,其中包含文本框等输入。每个 TextBox 都将一个变量与一个默认值相关联。软件包工具包还包含一个由安装程序生成的 .xml 文件,其中包含向导中在特定路径中设置的值。效果很好。
问题是我有很多这个文本框和很多步骤。我想增加用户在向导的一个步骤中浏览 .xml 文件的可能性,然后跳过所有在文本框中插入数据的步骤。
我猜在我的安装程序项目中,我必须为每个变量设置一个值或一个路径(我确切地知道我需要的值在 xml 中的位置),条件是用户指向一个 xml。
如果浏览的xml没有我需要的相同模板,我暂时忽略,假设我会找到路径。
问题是我如何在我的项目中设置变量以防xml文件被浏览?
最新编辑:
我的 xml 看起来像:
<Settings>
<SiteNames>
<Setting property="prop1">value1</Setting>
<Setting property="prop2">value2</Setting>
</SiteNames>
</Settings>
我的 .js 是:
function setValues(){
var xmlPath = Session.Property("IS_BROWSE_FILEBROWSED");
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.load(xmlPath);
var elem = xmlDoc.getElementsByTagName("Setting");
for (var i=0; i<elem.length; i++){
Session.Property(elem[i].getAttribute("property")) = elem[i].childNodes[0].nodeValue);
}
}
有什么问题吗?我的属性值没有改变..
按下按钮时脚本正在运行。我不知道我必须做什么才能让它工作。
感谢您的宝贵时间。
【问题讨论】:
标签: installshield