Estou criando um pacote NuGet para uma biblioteca de classes C # e gostaria de incluir a documentação Xml gerada com a biblioteca. Este é meu arquivo 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>
Quando eu construo o pacote com este comando :
nuget pack MyLibrary.nuspec
Isso gera um erro. Se eu remover a linha:
<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
NuGet.exe cria o nupkg com sucesso. Posso até descompactar o pacote e verificar se o conteúdo está correto. O que estou fazendo de errado? O arquivo xml deve ir para um diretório de destino diferente?
c#
nuget
nuget-package
John Nelson
fonte
fonte
nuget pack library.csproj
(não tenho um nuspec), mas a correção funciona da mesma forma.Respostas:
O problema é que eu não marquei "Gerar documentação Xml" para a configuração de compilação que estava usando. Esse nuspec está correto.
fonte
No .NET Core / Standard, você pode fazer isso editando o arquivo XML do projeto, por exemplo:
Isso produzirá a documentação como um arquivo XML próximo ao seu conjunto de saída.
EDITAR: Como uma nota lateral, uma vez que você habilite,
GenerateDocumentationFile
você provavelmente receberá muitos avisos sobre seus métodos públicos por não ter adicionado tags de documentação completa. Se você deseja desativar esses avisos, basta adicionarPropertyGroup
:fonte
<GenerateDocumentationFile>
resulta em<DocumentationFile>
já, então acho que apenas um dos dois é necessário, consulte: docs.microsoft.com/en-us/dotnet/csharp/codedoc<DocumentationFile>
se apenas permite que você envie o arquivo para onde quiser. Se você não especificar, acho que literalmente o coloca no caminho que forneci acima.