我正在使用InstallShield 2012构建Web服务安装,并且需要根据用户输入修改我的应用程序的Web.config文件。我在DestinationFolder对话框后面引入了PromptServerAndDatabase对话框。我还在InstallShield的XML File Changes视图中设置了Web.config文件。这是我的基本web.config文件结构:InstallShield XML文件更改 - 安装时更改节点属性
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
...
</configSections>
<appSettings>
<add key="DatabaseServer" value="sql08r2">sql08r2</add>
<add key="DatabaseName" value="UserDatabaseName">UserDatabaseName</add>
</appSettings>
...
</configuration>
这时我可以成功地更改节点的字面意义,但我不能改变一个节点的属性。
这里的内的InstallShield结构的XML文件的更改查看:
而且,这里的高级选项卡是所有三个节点几乎相同。与数据库名称相关联的两个节点都使用相同的属性,而对于服务器名称节点使用属性[SERVER_NAME](未显示):
运行安装程序的Web.config文件更新成功后。 DatabaseName和ServerName节点的值将被更新。但是,DatabaseName节点中“value”属性的值不是,尽管它应该反映与节点实际值相同的文本。一旦我完善了这一点,我将需要将它复制到ServerName节点,但为了简单起见,我将其留下了。
我已经做了一些额外的研究这一点,我发现这个网站它是非常有益的整体,但并没有解决这个问题对我来说:
http://helpnet.installshield.com/installshield16helplib/XML-XPath.htm
也许答案是存在的,我只是想念它,IDK。
感谢您对此提供的任何帮助。