Estoy creando un paquete NuGet para una biblioteca de clases C # y me gustaría incluir la documentación Xml generada con la biblioteca. Este es mi archivo nuspec:
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
<id>MyLibrary</id>
<version>1.0.0.0</version>
<authors>John Nelson</authors>
<language>en-US</language>
<description>A C# class library</description>
</metadata>
<files>
<file src="..\..\build\MyLibrary.dll" target="lib\Net40" />
<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
</files>
</package>
Cuando construyo el paquete con este comando :
nuget pack MyLibrary.nuspec
Genera un error. Si elimino la línea:
<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
NuGet.exe crea correctamente el archivo nupkg. Incluso puedo descomprimir el paquete y verificar que el contenido sea correcto. ¿Qué estoy haciendo mal? ¿Debería el archivo xml ir a un directorio de destino diferente?
c#
nuget
nuget-package
John Nelson
fuente
fuente
nuget pack library.csproj
(no tengo un nuspec), pero la solución funciona igual.Respuestas:
El problema fue que no verifiqué "Generar documentación Xml" para la configuración de compilación que estaba usando. Esa nuspec es correcta.
fuente
En .NET Core / Standard, puede hacer esto editando el archivo XML del proyecto, por ejemplo:
Esto generará la documentación como un archivo XML junto a su ensamblado de salida.
EDITAR: Como nota al margen, una vez que lo habilite
GenerateDocumentationFile
, probablemente recibirá muchas advertencias en sus métodos públicos por no haber agregado etiquetas de documentación completas. Si desea deshabilitar estas advertencias, simplemente agreguePropertyGroup
:fuente
<GenerateDocumentationFile>
da como resultado un<DocumentationFile>
ya, así que creo que solo se requiere uno de ambos, consulte: docs.microsoft.com/en-us/dotnet/csharp/codedoc<DocumentationFile>
sí mismo solo le permite generar el archivo donde quiera. Si no lo especifica, creo que literalmente lo pone en la ruta que he proporcionado anteriormente.