簡體   English   中英

InstallShield XML文件更改 - 在安裝時更改節點屬性

[英]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中的結構:

XML結構

此外,這里是高級選項卡,對於所有三個節點幾乎完全相同。 與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM