Correctly enable XML documentation in ASP.Net Core for publish/build output

In May, 2017 I wrote this article which describes how to include the XML documentation in your publish output.

Outdated

My latest approach (for the sake of completeness) was (add to your csproj file):

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
    <ItemGroup>
      <DocFile Include="bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\$(TargetName).xml" />
    </ItemGroup>
    <Copy SourceFiles="@(DocFile)" DestinationFolder="$(PublishDir)" SkipUnchangedFiles="false" />
  </Target>
  
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
  <DocumentationFile>bin\Debug\netcoreapp2.0\YOURPROJECT.xml</DocumentationFile>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
 <DocumentationFile>bin\Release\netcoreapp2.0\YOURPROJECT.xml</DocumentationFile>
  </PropertyGroup>

New and easier approach

But now you can just use

<PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

in your project file and visual studio takes care of debug/release folders and publishes your xml.

Solution found in this github issue.

Edit: This solution is still valid for .netcore3.1


comments powered by Disqus