Ho bisogno di scrivere un'attività personalizzata che stampi tutte le proprietà definite (quelle non riservate). Quindi nel mio codice C#, voglio accedere alla lista delle proprietà del motore MSBuild e non so come. Per favore aiuto.Come accedere all'elenco delle proprietà di MSBuild quando si codifica un'attività personalizzata?
Q
Come accedere all'elenco delle proprietà di MSBuild quando si codifica un'attività personalizzata?
5
A
risposta
3
Utilizzando .NET 4:
using Microsoft.Build.Evaluation;
using Microsoft.Build.Utilities;
namespace MSBuildTasks
{
public class GetAllProperties : Task
{
public override bool Execute()
{
Project project = new Project(BuildEngine.ProjectFileOfTaskNode);
foreach (ProjectProperty evaluatedProperty in project.AllEvaluatedProperties)
{
if (!evaluatedProperty.IsEnvironmentProperty &&
!evaluatedProperty.IsGlobalProperty &&
!evaluatedProperty.IsReservedProperty)
{
string name = evaluatedProperty.Name;
string value = evaluatedProperty.EvaluatedValue;
}
// Do your stuff
}
return true;
}
}
}
6
L'esempio precedente si blocca si proietta file. Ciò potrebbe causare problemi. Ad esempio se si chiama l'attività più volte nello stesso file di progetto. Ecco il codice migliorato:
using System.Xml;
using Microsoft.Build.Evaluation;
using Microsoft.Build.Utilities;
namespace MSBuildTasks
{
public class GetAllProperties : Task
{
public override bool Execute()
{
using (XmlReader projectFileReader = XmlReader.Create(BuildEngine.ProjectFileOfTaskNode))
{
Project project = new Project(projectFileReader);
foreach (ProjectProperty property in project.AllEvaluatedProperties)
{
if (property.IsEnvironmentProperty) continue;
if (property.IsGlobalProperty) continue;
if (property.IsReservedProperty) continue;
string propertyName = property.Name;
string propertyValue = property.EvaluatedValue;
// Do your stuff
}
return true;
}
}
}
}
Problemi correlati
- 1. Quando MSBuild imposta la proprietà $ (ProjectName)?
- 2. groovy: Come accedere al file delle proprietà?
- 3. Come si codifica una proprietà con proprietà secondarie?
- 4. Attività MSBuild personalizzata con dipendenze
- 5. angular.copy quando array ha proprietà personalizzata
- 6. Sovrascrivi proprietà con MSBuild
- 7. Ambito proprietà MSBuild
- 8. Come si usa MSBuild meno o più delle condizioni?
- 9. MSBuild - Imposta proprietà per soluzione
- 10. MTOM Codifica e associazione personalizzata
- 11. Come risolvere: l'attività MSBuild personalizzata richiede l'assemblaggio all'esterno di AppBase
- 12. MsBuild Condizione Valutare proprietà contiene
- 13. FileNotFoundException quando si utilizza il file delle proprietà java
- 14. Scheda personalizzata nella finestra di dialogo delle proprietà del file
- 15. Come si legge un valore di registro utilizzando un'attività msbuild personalizzata?
- 16. FAKE: come definire le proprietà MSBuild?
- 17. Ridisegnare la sottoclasse CALayer personalizzata sulla modifica delle proprietà personalizzate
- 18. Codifica Chartset quando si utilizza Ajax? JQuery
- 19. Passare le opzioni di MSBuild quando si chiama devenv
- 20. Matrice di una classe personalizzata come proprietà
- 21. Come si chiamano più script MSBuild da uno script MSBuild
- 22. Estrazione delle Proprietà file di Windows (Proprietà personalizzate) C#
- 23. Come si chiama un target MSBuild sovrascritto
- 24. Come accedere al contesto del progetto corrente all'interno di un'attività personalizzata?
- 25. Come scrivere Javadoc delle proprietà?
- 26. Pagina di errore personalizzata quando si utilizza Owin
- 27. Elenco delle variabili incorporate di MSBuild
- 28. Quando utilizzare le proprietà delle dipendenze
- 29. Utilizzo di MSBuild, come si imposta una proprietà sul contenuto di un file?
- 30. Come si passano le proprietà msiexec a un'azione personalizzata di WiX C#?