NuGet paketine bir sınıf kitaplığı için Xml Belgelerini nasıl dahil edersiniz?


104

Bir C # sınıf kitaplığı için bir NuGet paketi oluşturuyorum ve oluşturulan Xml Belgelerini kitaplığa dahil etmek istiyorum. Bu benim nuspec dosyam:

<?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>

Ne zaman bu komutla paketi oluşturmak :

nuget pack MyLibrary.nuspec

Bir hata oluşturur. Satırı kaldırırsam:

<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />

NuGet.exe başarıyla nupkg oluşturur. Hatta paketi açıp içeriğin doğru olduğunu doğrulayabilirim. Neyi yanlış yapıyorum? Xml dosyası farklı bir hedef dizine mi gitmeli?


Paketi oluşturmak için hangi komutu kullanıyorsunuz?
Albay Panic

@ColonelPanic, komut ve dokümanlara bağlantı ile soru güncellendi.
John Nelson

Teşekkürler John. Doğrudan bir csproj paketliyorum nuget pack library.csproj(bir nuspec'e sahip değilim), ancak düzeltme aynı şekilde çalışıyor.
Albay Panic

Yanıtlar:


99

Sorun, kullandığım yapı yapılandırması için "Xml Belgeleri Oluştur" seçeneğini işaretlemememdi. Bu nuspec doğru.

görüntü açıklamasını buraya girin


6
Bunu bildiğim iyi oldu. Bir paket oluşturmak için GUI'yi kullanmaya çalışıyordum ve XML dosyasını lib yerine içerik klasörüne taşımamı sağlamaya çalışıyordu. Doğru görünmedi, bu yüzden ikinci bir görüş almak istedim. Bu gönderiyi almanıza sevindim. :-)
Mike Loux

12

.NET Core / Standard'da bunu proje XML dosyasını düzenleyerek yapabilirsiniz, örneğin:

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

<PropertyGroup>
    <DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>

Bu, dokümantasyonu çıktı derlemenizin yanında bir XML dosyası olarak çıkaracaktır.

DÜZENLEME: Bir yan not olarak, bir kez etkinleştirdiğinizde GenerateDocumentationFile, genel yöntemleriniz hakkında tam dokümantasyon etiketlerini eklemediğiniz için muhtemelen birçok uyarı alacaksınız. Bu uyarıları devre dışı bırakmak istiyorsanız, şunları eklemeniz yeterlidir PropertyGroup:

<NoWarn>$(NoWarn);1591</NoWarn>

<GenerateDocumentationFile><DocumentationFile>zaten bir sonuç veriyor
Kapé

<DocumentationFile>Kendinizi belirtmek, sadece dosyayı istediğiniz yerde çıkarmanıza izin verir. Bunu belirtmezseniz, kelimenin tam anlamıyla yukarıda sağladığım yola koyduğunu düşünüyorum.
bytedev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.