Создайте элемент и посмотрите, содержит ли он что-нибудь, например:
<Target Name="CheckDirectoryForEmpty">
<PropertyGroup>
<EmptyCheck>./PathTo/DirectoryToCheck/*.*</EmptyCheck>
</PropertyGroup>
<ItemGroup>
<EmptyCheck Include="$(EmptyCheck)" />
</ItemGroup>
<Message
Condition="'@(EmptyCheck)' == ''"
Text="Directory '$(EmptyCheck)' is empty"
/>
</Target>
Для рекурсивной проверки используйте **/*.*
вместо *.*
в пути.