我正在使用 InstallShield 2012 构建 Web 服务安装,我需要根据用户输入修改我的应用程序的 Web.config 文件。我在 DestinationFolder 对话框之后介绍了 PromptServerAndDatabase 对话框。我还在 InstallShield 的 XML 文件更改视图中设置了 Web.config 文件。这是我的基本 web.config 文件结构:
<?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>
这时候我可以成功改变一个节点的字面值,但是我不能改变一个节点的属性。
这是 XML 文件更改视图中 InstallShield 中的结构:
此外,这里的“高级”选项卡对于所有三个节点几乎都是相同的。与 Database Name 关联的两个节点使用相同的属性,而 Server Name 的节点使用属性 [SERVER_NAME](未显示):
运行安装程序后,Web.config 文件已成功更新。更新 DatabaseName 和 ServerName 节点的值。但是,DatabaseName 节点中“value”属性的值不是,尽管它应该反映与节点的实际值相同的文本。一旦我完善了它,我将需要为 ServerName 节点复制它,但为了简单起见,我把它省略了。
我对此做了一些额外的研究,我发现这个网站总体上很有帮助,但没有为我解决这个问题:
http://helpnet.installshield.com/installshield16helplib/XML-XPath.htm
也许答案就在那里,我只是想念它,IDK。
感谢您对此提供的任何帮助。