我正在使用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。
感謝您對此提供的任何幫助。