[c#] NuGet 패키지에 클래스 라이브러리 용 Xml 문서를 어떻게 포함하나요?

C # 클래스 라이브러리 용 NuGet 패키지를 만들고 있으며 생성 된 Xml 설명서를 라이브러리와 함께 포함하고 싶습니다. 이것은 내 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>

이 명령으로 패키지를 빌드 할 때 :

nuget pack MyLibrary.nuspec

오류가 발생합니다. 줄을 제거하면 :

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

NuGet.exe가 nupkg를 성공적으로 만듭니다. 패키지의 압축을 풀고 내용이 올바른지 확인할 수도 있습니다. 내가 뭘 잘못하고 있죠? xml 파일이 다른 대상 디렉토리로 이동해야합니까?



답변

문제는 내가 사용하고있는 빌드 구성에 대해 “Xml 문서 생성”을 확인하지 않았다는 것입니다. 그 nuspec이 맞습니다.

여기에 이미지 설명 입력


답변

.NET Core / Standard에서는 프로젝트 XML 파일을 편집하여이를 수행 할 수 있습니다. 예를 들면 다음과 같습니다.

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

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

그러면 문서가 출력 어셈블리 옆에 XML 파일로 출력됩니다.

편집 :
일단 활성화 GenerateDocumentationFile하면 부수적으로 전체 문서 태그를 추가하지 않은 공개 방법에 대한 많은 경고가 표시됩니다. 이러한 경고를 비활성화하려면 다음을 추가하십시오 PropertyGroup.

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


답변