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>