Ho bisogno di una serie di attività che devono essere eseguite esattamente una volta per l'intera soluzione. Questo eseguirà attività che modificheranno ciascun progetto per eseguire un insieme separato di attività per ciascun progetto. Lo abbiamo fatto in precedenza utilizzando un progetto separato per la soluzione che aveva i compiti a livello di soluzione, ma vogliamo allontanarci da quello. Qualcuno ha fatto questo o qualcuno ha qualche suggerimento su come implementarlo?Eseguire una corsa di destinazione una volta a livello di soluzione in MSBuild
7
A
risposta
6
Poiché i file della soluzione non sono in formato MSBuild, non possono essere facilmente estesi o personalizzati. Se si desidera un maggiore controllo sul processo di generazione, è necessario creare un file msbuild "driver" che sostituisca il file della soluzione. All'interno di questo file di driver si dovrebbero creare tutti i progetti necessari e svolgere alcune attività aggiuntive. Lo faresti usando lo MSBuild task. Ecco un esempio che mostra come creare più di un progetto.
<Project ...>
<ItemGroup>
<Projects Include="proj01.csproj"/>
<Projects Include="proj02.csproj"/>
<Projects Include="proj03.csproj"/>
</ItemGroup>
<Target Name="BuildAll">
<MSBuild Projects="@(Projects)" BuildInParallel="true" />
</Target>
</Project>
Quindi nel tuo caso devi solo eseguire le attività prima di costruire i progetti. Si noti inoltre che ho specificato il valore true per BuildInParallel
indicando che MSBuild può provare e creare più di un progetto contemporaneamente.
Problemi correlati
- 1. Come assegnare una corsa a una proprietà di testo, a livello di programmazione?
- 2. Costruire a livello di programmazione una soluzione di Visual Studio?
- 3. Unjar a una destinazione specifica
- 4. Sopprime l'avviso a livello di soluzione. Trattare l'avviso come errore a livello di soluzione
- 5. Come si può modificare un ItemDefinitionGroup da una destinazione MSBuild?
- 6. MSBuild - Imposta proprietà per soluzione
- 7. Versione specifica di destinazione di .NET con MSBuild
- 8. XCopia una directory a una destinazione diversa
- 9. Come eseguire read() funzione solo una volta in batch Primavera
- 10. MSBuild non riesce a trovare SGen durante la compilazione di una soluzione
- 11. Passa il target personalizzato di msbuild da Soluzione a Progetto
- 12. In che modo MSBuild crea una destinazione personalizzata specificata in csproj building sln?
- 13. Definite a livello di soluzione in Visual Studio?
- 14. Aprire un file pdf a livello di codice in una destinazione denominata
- 15. Come eseguire una richiesta POST a livello di codice in python con una GUI? (spynner, webkit ...)
- 16. Eseguire il debug di una DLL di riferimento in una soluzione separata
- 17. Come eseguire Cronjobs più di una volta al minuto?
- 18. Ottenere un foreach da eseguire una volta
- 19. Come posso comunicare a MSTEST di eseguire tutti i progetti di test in una soluzione?
- 20. In che modo è possibile trovare a livello di codice l'azione di ciascun progetto di avvio in una soluzione?
- 21. Utilizzo di MsBuild per generare manifest MsDeploy personalizzato (destinazione pacchetto)
- 22. forzare EventListener javascript da eseguire una volta?
- 23. Come faccio a creare una soluzione a livello stringa di connessione
- 24. Aggiornamento di una lista di corsa in cuoco con coltello
- 25. Aggiunta di una destinazione a un progetto Xcode
- 26. Come eseguire attività in parallelo in MSBuild
- 27. Cartella soluzione di Visual Studio a livello di progetto
- 28. Come eseguire più comandi con una destinazione aggiuntiva in QMake
- 29. Come eseguire la funzione una volta?
- 30. Mappa di Automapper può eseguire la mappatura da un dizionario di proprietà a una destinazione piatta?
Questa è un'idea interessante. Credo che funzionerà anche se voglio svolgere alcuni compiti aggiuntivi prima di costruire i progetti? (E quelle attività aggiuntive modificheranno i progetti stessi.) – Chandam
La creazione di questi file di build è uno scenario molto comune. Molte persone preferiscono scrivere questi tipi di file di build utilizzando la soluzione per le build di produzione. Nel mio caso utilizzo solo i file di soluzione per Visual Studio, mai per le build effettive. –
In questo approccio si dice che se il mio progetto 1 dipende dal progetto 2, allora msbuild non costruirà il mio progetto 2 due volte, ritardando così il processo di compilazione? – Nikhil