.NET Core include folder in publish
I have the following folder structure for my .NET Core 2.1 project:
How can I include folder AppData
and all of its subfolders and files when I publish the solution?
I tried adding this to .csproj file but it didn't work:
<ItemGroup>
<Folder Include="AppData\*" />
</ItemGroup>
EDIT
I also tried with this and it didn't work:
<ItemGroup>
<Content Include="AppData\**" LinkBase="AppData" />
</ItemGroup>
Adding this:
<ItemGroup>
<Content Include="AppData\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
to your .csproj
file will copy AppData
folder if it's not empty. For empty AppData
folder you can use this workaround:
<Target Name="CreateAppDataFolder" AfterTargets="AfterPublish">
<MakeDir Directories="$(PublishDir)AppData" Condition="!Exists('$(PublishDir)AppData')" />
</Target>
This will create AppData
folder after publish if it won't be already included in output. Meaning this will create AppData
folder only if it's empty while publishing.
There is simple and useful solution:
<ItemGroup>
<Content Include="AppData\**" CopyToPublishDirectory="PreserveNewest"/>
</ItemGroup>
You can find more tricks here: https://docs.microsoft.com/en-us/dotnet/core/tools/project-json-to-csproj