Another blog post in what seems to be becoming a series of posts on Swagger.
Swashbuckle allows you to include XML comments on your API’s Swagger page. To do this you need to set your Build to output an XML file, which Swashbuckle reads the XML comments from.
Don’t forget to add that XML file to the “Release” build configuration too, otherwise you won’t have XML comments when your application is actually deployed to an environment.
Here’s a handy code snippet for your .NET Core .csproj file:
<!-- Begin Swagger documentation file--> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <DocumentationFile>bin\Debug\net46\win10-x64\swagger.xml</DocumentationFile> <NoWarn>1701;1702;1705;1591</NoWarn> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <DocumentationFile>bin\Debug\net46\win10-x64\swagger.xml</DocumentationFile> <NoWarn>1701;1702;1705;1591</NoWarn> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <DocumentationFile>bin\Release\net46\win10-x64\swagger.xml</DocumentationFile> <NoWarn>1701;1702;1705;1591</NoWarn> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <DocumentationFile>bin\Release\net46\win10-x64\swagger.xml</DocumentationFile> <NoWarn>1701;1702;1705;1591</NoWarn> </PropertyGroup> <!-- End Swagger documentation file-->
Additionally, if your application is deployed on Azure Service Fabric, you will also need to copy the XML file to your PublishDir, with the following snippet in your .csproj:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish"> <ItemGroup> <DocFile Include="bin\x64\$(Configuration)\$(TargetFramework)\win10-x64\*.xml" /> </ItemGroup> <Copy SourceFiles="@(DocFile)" DestinationFolder="$(PublishDir)" SkipUnchangedFiles="false" /> </Target>
And of course you need to tell Swashbuckle to use that XML file via the .IncludeXmlComments() method mentioned above.