2009-07-02 6 views
8

Tengo un archivo que configuro usando PowerShell que contiene el número de versión de mi compilación. Necesito obtener esto dentro de MSBuild para que pueda actuar en mi script de compilación. Parece lo suficientemente simple; Solo quiero tomar el contenido del archivo y establecer una propiedad para ese valor.Usando MSBuild, ¿cómo configuro una propiedad para el contenido de un archivo?

Pensé que tal vez hacer una tarea de Exec, hacer un "más" en mi archivo, y capturar estándar sería el truco, pero parece que no puedo hacer que esto funcione. Parece que otros han tenido problemas con stdout y MSBuild también. Esto es lo que he intentado:

<Exec Command="more $(BuildDirectory)\version.txt" Outputs="stdout"> 
    <Output TaskParameter="Outputs" ItemName="BuildNumber" /> 
</Exec> 

Respuesta

8

La tarea ReadLinesFromFile es lo que quiere

<ReadLinesFromFile File="Version.Txt"> 
    <Output TaskParameter="Lines" Item="BuildNumber"/> 
</ReadLinesFromFile> 

que dijo, otra manera de hacer lo que su pregunta implica es almacenar a construir información num en un archivo XML , con un esquema de MSBuild

algo así como

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<PropertyGroup> 
    <BuildNumber>10</BuildNumber> 
    <RevNumber>5</RevNumber> 
</PropertyGroup> 
</Project> 

y luego importar º e archivo version.properties en su archivo principal msbuild

+0

¡Gracias! Simplemente no pude encontrar esa tarea. FYI, hay un pequeño error en tu primer fragmento de código. Es NombreDeElemento en lugar de artículo: entonces puedo acceder la salida usando "@ (BuildNumber)". –

+0

Ack: ahora necesito cambiar de un elemento de la lista (@) a una propiedad ($). ¿Algún consejo sobre esto? –

+0

Creo que lo descubrí:

Cuestiones relacionadas