que tienen un proyecto de Silverlight 3 con algo como esto:MSBuild: ¿Cómo creo y uso una tarea para convertir elementos de contenido en tiempo de compilación?
<ItemGroup>
<Content Include="Content\image1.png">
</Content>
</ItemGroup>
Básicamente He añadido un archivo PNG a mi proyecto y establezca su acción acumulación de "contenido". Esto funciona bien
Ahora lo que me gustaría hacer es ser capaz de añadir imágenes en un formato diferente a mi proyecto, y hacer que convertido a PNG en tiempo de compilación - por lo que el resultado final es como si tuviera agregó una imagen PNG al proyecto (como Contenido) en primer lugar.
En otras palabras: deseo que la imagen aparezca, en formato PNG, en mi paquete XAP.
Idealmente, me gustaría hacer esto de forma que funcione con Visual Web Developer 2008 Express (para que pueda agregar archivos de imagen a mi proyecto arrastrándolos al IDE y tal vez cambiando su acción de compilación), y sin hacer ningún cambio en todo el sistema.
El formato específico que quiero convertir es XCF. Ya tengo el código .NET para hacer la conversión a PNG. Estoy asumiendo que debo create a MSBuild Task.
Realmente no tengo mucha experiencia en MSBuild, y me gustaría saber cómo armar una cosa así.
Con base en mi comprensión general de cómo funciona MSBuild, creo que necesito saber:
- Cómo crear una colección de artículos por (re) moviéndolos desde el
@(Content)
(o algún otra) colección, en función de su extensión de archivo?- O: crear una acción de generación personalizada que puedo utilizar en Visual Web Developer 2008 Express
- Cómo para recibir la trayectoria de elementos de entrada en un
Task
? - Dónde (.NET o MSBuild?) Y Cómo especificar la ubicación de los archivos de salida generados por
Task
? - cómo garantizar que un archivo se reconstruye si sus cambios en los archivos de entrada?
- ¿Dónde (probablemente
BeforeBuild
?) Y Cómo reinyectar los elementos convertidos en@(Content)
? (¿O debería usar alguna otra colección?)- O: ¿Alguna otra forma de incluirlos en el XAP?
Y si esto parece una forma razonable de hacer las cosas o si me he perdido algo?
He descubierto que 'AvailableItemName' hará que una Acción de compilación personalizada aparezca en VWD. Referencia: http://msdn.microsoft.com/en-us/library/ms171468(VS.80).aspx –