Tarea para modificar App.config en TeamCity

TeamCity CI tiene una variable %system.build.number% que se incrementará en el formatting 1.0.%build.counter%.0 . Esto generará ensambles con diferentes numbers de versión cada vez. Quiero agregar este nuevo número de versión en mi file app.config. ¿Cuál es la forma más fácil de hacer esto? Tengo 100 proyectos que tienen app.config y casi todos usan los mismos ensamblajes. ¿Puedo tener un file app.config común que pueda vincular y modificar? Bien, proporcione un ejemplo de cómo modificar el campo newVersion en la networkingirección de enlace al número de compilation actual provisto por teamcity usando un XmlTransform.

 <?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <legacyUnhandledExceptionPolicy enabled="1" /> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity name="MyApp.Data.Model" publicKeyToken="866d4a0fa0594321" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.1.0" newVersion="1.0.2.0" /> </dependentAssembly> </assemblyBinding> </runtime> 

Puede usar transformaciones xdt. Aquí hay un fragment de la function de PowerShell , ¿ Web.Config se transforma fuera de Microsoft MSBuild?

Luego creas meta runner (más ayuda http://confluence.jetbrains.com/display/TCD8/Working+with+Meta-Runner ) para transformar las configuraciones con XDT y usarlas en un paso de compilation. Eso es 🙂

También podría crear una tarea msbuild e invocar msbuild en lugar de la function powershell.

Yo uso la tarea XmlPole para lograr esto fácilmente. La solución se puede encontrar en mi respuesta stackoverflow