Ответ 1
Используйте свойство или элемент. Ваш MSBuild, который вычисляет путь, возвращает его как свойство, и вы используете это свойство как вход для своей другой задачи.
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>
Если вам нужно передать значение между двумя проектами MSBuild, вы должны создать третью, которая вызовет другую, используя задачу MSBuild, и используйте элемент TargetOutputs, чтобы вернуть требуемое значение.