[英]InstallShield XML File Changes - Change node attribute on install
我正在使用InstallShield 2012構建Web服務安裝,我需要根據用戶輸入修改我的應用程序的Web.config文件。 我在DestinationFolder對話框之后引入了PromptServerAndDatabase對話框。 我還在InstallShield的XML File Changes視圖中設置了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。
感謝您提供的任何幫助。
好吧我的問題是我對General選項卡和添加的屬性有一個基本的誤解。 “常規”選項卡上的屬性實際上是XML節點的屬性,該表中每個條目的值列是該屬性將設置的值。 因此,通過將該值更改為我正在更改的屬性,它解決了我的問題。 我按原樣離開了“高級”選項卡,因為我在那里的選項正確地更改了元素內容的值。 最后,我更改了XPath查詢以刪除value屬性,因為正在安裝的web.config文件將來可能會更改此值。 由於appSettings節點中只有一個添加節點的鍵值為DatabaseName或ServerName,因此我只需要搜索key =“”的XPath。
這是一個視覺:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.