Ho un progetto di Silverlight 3 con qualcosa di simile:MSBuild: come posso creare e utilizzare un'attività per convertire gli elementi di contenuto al momento della compilazione?
<ItemGroup>
<Content Include="Content\image1.png">
</Content>
</ItemGroup>
Fondamentalmente ho aggiunto un file PNG al mio progetto e impostare la sua azione build per "Contenuto". Funziona bene
Ora quello che mi piacerebbe fare è essere in grado di aggiungere le immagini in un formato diverso al mio progetto, e li hanno convertiti in PNG al momento della compilazione - in modo che il risultato finale è come se avessi ha aggiunto un'immagine PNG al progetto (come Contenuto) in primo luogo.
In altre parole, voglio che l'immagine appaia, in formato PNG, nel mio pacchetto XAP.
Idealmente mi piacerebbe farlo in modo che funzioni con Visual Web Developer 2008 Express (quindi posso aggiungere file di immagine al mio progetto trascinandoli nell'IDE e magari modificando la loro azione di compilazione), e senza apportare modifiche a livello di sistema.
Il formato specifico che voglio convertire è XCF - Ho già il codice .NET per fare la conversione in PNG. Presumo che devo create a MSBuild Task.
Non ho molta esperienza MSBuild e mi piacerebbe sapere come mettere insieme una cosa del genere.
Sulla base della mia comprensione di massima di come funziona MSBuild, penso che ho bisogno di sapere:
- Come creare una collezione di articoli da (ri) spostandoli dalla
@(Content)
(o qualche altro), in base alla loro estensione di file?- OR: creare un'azione di generazione personalizzata che posso utilizzare in Visual Web Developer 2008 Express
- Come per ricevere il percorso di elementi di input in un
Task
? - Dove (.NET o MSBuild?) E Come specificare la posizione dei file di output generati da un
Task
? - Come assicurarsi che un file venga ricostruito se il suo file di input cambia?
- Dove (probabilmente
BeforeBuild
?) E Come reinserire gli articoli convertiti in@(Content)
? (O dovrei usare qualche altra collezione?)- OPPURE: Qualche altro modo di inserirli nell'XAP?
E se questo sembra un modo ragionevole per fare le cose o se ho perso qualcosa?
Ho scoperto che 'AvailableItemName' farà apparire un'azione di compilazione personalizzata in VWD. Riferimento: http://msdn.microsoft.com/en-us/library/ms171468(VS.80).aspx –