2009-08-18 4 views
4

J'essaie d'utiliser XmlMassUpdate pour mettre à jour mes fichiers de configuration en fonction du type de version de construction. Il semble n'y avoir aucune documentation sur la façon de mettre à jour les nouveaux formats de paramètres app.config (vs2008) n'importe où.XmlMassUpdate - Remplacer le noeud de valeur

C'est la section de configuration:

<applicationSettings> 
<CTC.Mica.ClientService.Properties.Settings> 
    <setting name="PipeName" serializeAs="String"> 
    <value>\\.\pipe\micaPipe</value> 
    </setting> 
    <setting name="CTC_Mica_ClientService_MicaWebService_MicaWebService" 
     serializeAs="String"> 
    <value>URL</value> 
    </setting> 
</CTC.Mica.ClientService.Properties.Settings> 
</applicationSettings> 

Et je suis en train de mettre à jour la valeur URL de ce fichier:

<Debug> 
    <setting xmu:key="name" name="CTC_Mica_ClientService_MicaWebService_MicaWebService" serializeAs="String"> 
     <value>DEVURL</value> 
    </setting> 
</Debug> 

<Test> 
    <setting xmu:key="name" name="CTC_Mica_ClientService_MicaWebService_MicaWebService" serializeAs="String"> 
     <value>TESTURL</value> 
    </setting> 
</Test> 

<Release> 
    <setting xmu:key="name" name="CTC_Mica_ClientService_MicaWebService_MicaWebService" serializeAs="String"> 
     <value>LIVEURL</value> 
    </setting> 
</Release> 

Exécution du script, je peux repl ace les attributs "name" ou "serializeAs", mais pas le noeud de valeur.

Comment procéder pour remplacer le nœud de valeur?

Cordialement

Tris

+0

devrait marquer probablement ce que je msbuild –

Répondre

6

Les scripts suivants fonctionnent très bien pour moi (en cours d'exécution sur 1.3.0.471 qui pourrait être une nightly build):

build.proj

<Project DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.targets" /> 
    <Target Name="Run"> 
     <Delete Condition="Exists('output.xml')" Files="output.xml"/> 
     <XmlMassUpdate 
      ContentFile="input.xml" 
      ContentRoot="/test" 
      SubstitutionsFile="subs.xml" 
      SubstitutionsRoot="/substitutions/release" 
      MergedFile="output.xml" 
      /> 
    </Target> 
</Project> 
d'entrée

.xml

<test> 
    <setting name="PipeName" serializeAs="String"> 
    <value>\\.\pipe\micaPipe</value> 
    </setting> 
    <setting name="CTC_Mica_ClientService_MicaWebService_MicaWebService" serializeAs="String"> 
    <value>URL</value> 
    </setting> 
</test> 

subs.xml

<substitutions xmlns:xmu="urn:msbuildcommunitytasks-xmlmassupdate"> 
    <release> 
     <setting xmu:key="name" name="CTC_Mica_ClientService_MicaWebService_MicaWebService" serializeAs="Testing"> 
      <value>LIVEURL</value> 
     </setting> 
    </release> 
</substitutions> 

output.xml (généré par build)

<test> 
    <setting name="PipeName" serializeAs="String"> 
    <value>\\.\pipe\micaPipe</value> 
    </setting> 
    <setting name="CTC_Mica_ClientService_MicaWebService_MicaWebService" serializeAs="Testing"> 
    <value>LIVEURL</value> 
    </setting> 
</test> 
+1

semblent avoir la version 1.2.0.306 - ne peut pas trouver 1.3 nulle part. –

+0

J'ai exécuté les fichiers que vous avez fournis et la version actuelle que je possède ne remplace pas le contenu des nœuds de valeur. Où puis-je trouver la version 1.3? Il ne semble pas être hébergé sur le site des tâches de la communauté. –

+0

http://msbuildtasks.tigris.org/ en bas est la dernière version nocturne. –