Запустить событие после сборки в условии
Итак, вы хотите запустить событие PostBuild
только в конкретном случае. Для этого вы можете использовать Condition
.
В вашем Condition
вы хотите проверить папку parent вашего Solution или Project dir (честно, я не уверен, что вы имел в виду).
MSBuild - родитель dir
Как вы можете получить родительский каталог?
<PropertyGroup>
<ProjectParentDir>$([System.IO.Path]::GetDirectoryName($(ProjectDir))))</ProjectParentDir>
<SolutionParentDir>$([System.IO.Path]::GetDirectoryName($(SolutionDir)))</SolutionParentDir>
</PropertyGroup>
Ответ
Итак, теперь вы можете объединить вышеуказанные знания:
<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="$(ProjectParentDir.EndsWith('A'))">
// Do your post build
</Target>
Комментарий
Поскольку я думаю, что, возможно, ваш вопрос неправильный, и, возможно, вы можете достичь своего решения без PostBuild
, я думаю, что вы можете использовать описанный мной инструмент для управления самим OutputPath
.
<PropertyGroup>
<ProjectParentDir>$([System.IO.Path]::GetDirectoryName($(ProjectDir))))</ProjectParentDir>
</PropertyGroup>
<PropertyGroup Condition="$(ProjectParentDir.EndsWith('A'))">
<OutputPath>Path/to/somewhere</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="!$(ProjectParentDir.EndsWith('A'))">
<OutputPath>Path/to/somewhere</OutputPath>
</PropertyGroup>
Подробнее
Я не уверен, что мой синтаксис правильный, пожалуйста, прочитайте больше: