I consider it generally good practice to include the XML documentation file generated by the C# build in NuGet packages alongside the DLLs to provide intellisense documentation for consumers.
However, it's not clear to me how this can be done when building a package using VS 2017's project file format.
Is this possible?
Obviously I could switch over to maintaining a nuspec file but the VS2017 format is very convenient for keeping versions and dependencies all in one place.
From the menu bar, choose Tools > Options to open the Options dialog box. Then, navigate to Text Editor > C# (or Visual Basic) > Advanced. In the Editor Help section, look for the Generate XML documentation comments option.
Today, a project's NuGet package information is stored in a project-level packages. config folder. The assemblies are stored in a separate packages folder, usually at the solution level.
As long as you set GenerateDocumentationFile
in your csproj file like this:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <GenerateDocumentationFile>true</GenerateDocumentationFile> </PropertyGroup> </Project>
then all the defaults will generate the documentation file at the correct location and it will be included in the NuGet package.
If Visual Studio added DocumentationFile
or other elements, you can delete them and replace it with the single GenerateDocumentationFile
property.
For other people who came in with the same problem - and if the accepted answer does not help...
Make sure that you have set the 'Include XML documentation' setting in the build configuration you are using (not just Debug, as by default)
In Visual Studio:
or in csproj:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <GenerateDocumentationFile>true</GenerateDocumentationFile> </PropertyGroup>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With