Usiamo msdeploy (o la distribuzione Web, se lo desideri) per impacchettare e distribuire app web. Dichiarando i tempi del pacchetto dei parametri possiamo fornire valori al momento della distribuzione (per sostituire le stringhe di connessione tra le altre cose).Sostituisci elementi * config * con parametri msdeploy
Il problema che stiamo affrontando è la sostituzione dei valori nelle sezioni applicationSettings nella nostra configurazione web. Non possiamo ottenere msdeploy per sostituire il valore perché il contenuto che vogliamo sostituire è il testo all'interno di un elemento xml, non un valore di attributo (l'avviso che otteniamo è: "Impossibile impostare un valore sul tipo di nodo 'Elemento'").
La configurazione relativa assomiglia a questo:
<applicationSettings>
<Name.Of.Assembly.Properties.Settings>
<setting name="someSetting" serializeAs="String">
<value>I wanna be replaced</value>
</setting>
</Name.Of.Assembly.Properties.Settings>
</applicationSettings>
e il parametro dichiarazione XML assomiglia a questo:
<parameter name="XX" defaultValue="default">
<parameterEntry kind="XmlFile"
scope="Web\.config$"
match="/configuration/applicationSettings/Name.Of.Assembly.Properties.Settings/setting[@name='someSetting']/value" />
</parameter>
Vuol msdeploy supportano solo sostituendo i valori degli attributi o sto facendo qualcosa di sbagliato?
Utile, grazie! Proverò. –
Ha funzionato per me --- il/text() è ciò che mi mancava. Non è un pro xpath. Questo dovrebbe essere contrassegnato come la risposta. Grazie Dave. – TravisWhidden
Accetto con @TravisWhidden: questa deve essere contrassegnata come risposta corretta. – Philippe