Reputation: 39394
I am publishing an ASP.NET Core 1.1 application and I need to delete from the output a few folders (fr;nl;pt) created by a library (Fluent Validation):
<ItemGroup>
<FluentValidationExcludedCultures Include="fr;nl;pt">
<InProject>false</InProject>
</FluentValidationExcludedCultures>
</ItemGroup>
<Target Name="RemoveTranslationsAfterBuild" AfterTargets="AfterBuild">
<RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutputPath)%(Filename)')" />
</Target>
But this does not work and the folders are still copied ... Then I tried:
<ItemGroup>
<Content Include="fr" CopyToPublishDirectory="Never" />
<Content Include="nl" CopyToPublishDirectory="Never" />
<Content Include="pt" CopyToPublishDirectory="Never" />
</ItemGroup>
But this didn't work either ...
Does anyone has any idea how to make this work?
Upvotes: 7
Views: 2300
Reputation: 5493
Another solution that works for build/publish
<!-- Removes FluentValidation localization folders -->
<Target Name="AfterPackage" AfterTargets="CopyAllFilesToSingleFolderForPackage" />
<ItemGroup>
<FluentValidationExcludedCultures Include="cs;da;de;es;fa;fi;fr;it;ko;mk;nl;pl;pt;ru;sv;tr;zh-CN">
<InProject>false</InProject>
</FluentValidationExcludedCultures>
</ItemGroup>
<Target Name="FluentValidationRemoveTranslationsAfterBuild" AfterTargets="AfterBuild">
<RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutDir)%(Filename)')" />
</Target>
<Target Name="FluentValidationRemoveTranslationsAfterPackage" AfterTargets="AfterPublish">
<RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutDir)%(Filename)')" />
</Target>
Upvotes: 1
Reputation: 2645
Try to edit your csproj file and add the following section for each of the directories that you do not want to include when publishing:
<ItemGroup>
<PublishFile Remove="directory\**" />
</ItemGroup>
Upvotes: 2