Utilizzare una proprietà o un articolo. Il tuo MSBuild che calcola il percorso, lo restituisce come una proprietà e tu usi questa proprietà come input per la tua altra attività.
public class CalculatePathTask : ITask
{
[Output]
public String Path { get; set; }
public bool Execute()
{
Path = CalculatePath();
return true;
}
}
<Target Name="CalculateAndUsePath">
<CalculatePathTask>
<Output TaskParameter="Path" PropertyName="CalculatePath"/>
</CalculatePathTask>
<Message Text="My path is $(CalculatePath)"/>
</Target>
Se è necessario passare un valore tra due di progetto MSBuild, è necessario creare una terza che chiamerà l'altro utilizzando MSBuild Task e utilizzare i TargetOutputs elemento di recuperare il valore che si volere.
fonte
2009-09-03 12:19:38
solo una breve nota: nel mio caso "ItemName" non funzionava. Non appena l'ho cambiato in 'PropertyName' ha funzionato come un incantesimo. – sebagomez
Provato questo, ma ottenuto 'Il parametro" TaskParameter "non è supportato dall'attività" MyCustomTask ". Verificare che il parametro esista nell'attività e che sia una proprietà di istanza pubblica impostabile – jpierson