penso che sia più conveniente utilizzare gli elementi XMLFILE per modificare i valori degli attributi:
<Component Id="Enable32BitAppPoolComponent" Guid="*" Directory="INSTALLLOCATION">
<CreateFolder/>
<util:XmlFile Id="Enable32BitAppPool"
Action="setValue"
Name="enable32BitAppOnWin64"
ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='DefaultAppPool'[\]]"
File="[inetsrv]\config\applicationHost.config"
PreserveModifiedDate="yes"
SelectionLanguage="XPath"
Sequence="INSERTCORRECTSEQUENCENUMBERHERE"
Value="true" />
</Component>
È necessario assegnare correttamente il numero di sequenza nel frammento di cui sopra.
L'attributo di sequenza non è presente nell'elemento XmlConfig, pertanto potrebbe trattarsi di un problema con il codice. Un altro problema è la definizione dell'attributo ElementPath
. Aggiungere @enable32BitAppOnWin64
è sbagliato. L'attributo individua l'elemento che si desidera modificare, nel tuo caso l'elemento add
che ha l'attributo name
di DefaultAppPool
. In quell'elemento si desidera modificare il valore di un attributo. Si specifica l'attributo in base al suo nome. A tale scopo è necessario aggiungere l'attributo name
all'elemento XmlConfig
. In combinazione con l'attributo Node
impostato su value
, la definizione dell'attributo è completa. L'attributo Action
dell'elemento XmlConfig deve essere impostato su create
. L'attributo VerifyPath
dell'elemento XmlConfig viene utilizzato per determinare se il nodo deve essere aggiunto o modificato.
La versione corretta del vostro elemento XMLConfig dovrebbe assomigliare a questo:
<Component Id="Enable32BitAppPoolComponent" Guid="*" Directory="INSTALLLOCATION">
<CreateFolder/>
<util:XmlConfig
Id="Enable32BitAppPool"
Action="create"
Node="value"
ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='DefaultAppPool'[\]]"
File="[inetsrv]\config\applicationHost.config"
Name="enable32BitAppOnWin64"
Value="true"
On="install"/>
</Component>
Se il vostro installatore ti dice che non può aprire il file XML, quindi è necessario verificare se il valore dell'attributo File
è corretta. Forse hai bisogno di cambiarlo in qualcosa come "[INSTALLFOLDER]\config\applicationHost.config"
o qualsiasi altra cosa tu abbia impostato l'attributo Id
della tua directory di installazione. Il registro di installazione dovrebbe fornire le informazioni su quale file non è stato possibile aprire.
Ci sono due ElementPath in uso: XmlConfig –