Miguel Moura
Miguel Moura

Reputation: 39394

Delete folders after publish with new ASP.NET CORE 1.1 csproj file format

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

Answers (2)

user854301
user854301

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

Gary Holland
Gary Holland

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

Related Questions