다음을 통해 공유


레거시 기호 패키지 만들기(.symbols.nupkg)

Important

기호 패키지에 대한 새 권장 형식은 .snupkg입니다. 기호 패키지(.snupkg) 만들기를 참조하세요.
.symbols.nupkg는 여전히 지원되지만 호환성 문제에서만 지원됩니다.

NuGet에서는 nuget.org 또는 기타 소스에 대한 패키지를 빌드하는 것 외에도 기호 서버에 게시할 수 있는 연관된 기호 패키지의 생성을 지원합니다.

레거시 기호 패키지 만들기

레거시 기호 패키지를 만들려면 다음과 같은 규칙을 따릅니다.

  • 기본 패키지(코드 포함)의 이름을 {identifier}.nupkg로 지정하고 .pdb 파일을 제외한 모든 파일을 포함합니다.
  • 레거시 기호 패키지 이름을 {identifier}.symbols.nupkg로 지정하고 어셈블리 DLL, .pdb 파일, XMLDOC 파일, 원본 파일을 포함합니다(다음 섹션 참조).

-Symbols 옵션을 사용하여 .nuspec 파일 또는 프로젝트 파일에서 두 패키지를 만들 수 있습니다.

nuget pack MyPackage.nuspec -Symbols

nuget pack MyProject.csproj -Symbols

pack에는 Mac OS X에서 Mono 4.4.2가 필요하며, Linux 시스템에서는 작동하지 않습니다. 또한 Mac에서는 .nuspec 파일의 Windows 경로 이름을 Unix 스타일 경로로 변환해야 합니다.

레거시 기호 패키지 구조

레거시 기호 패키지는 라이브러리 패키지가 수행하는 것과 동일한 방식으로 여러 대상 프레임워크를 대상으로 지정할 수 있으므로 lib 폴더의 구조는 DLL과 함께 .pdb 파일을 비롯한 기본 패키지와 정확히 동일해야 합니다.

예를 들어 .NET 4.0 및 Silverlight 4를 대상으로 하는 레거시 기호 패키지의 레이아웃은 다음과 같습니다.

\lib
    \net40
        \MyAssembly.dll
        \MyAssembly.pdb
    \sl40
        \MyAssembly.dll
        \MyAssembly.pdb

그런 다음 소스 파일은 src라는 별도 특수 폴더에 저장됩니다. 이 항목은 소스 리포지토리의 상대 구조에 따라야 합니다. PDB에는 일치하는 DLL을 컴파일하는 데 사용되는 소스 파일에 대한 절대 경로가 포함되기 때문이며, 게시 프로세스 중에 찾을 수 있어야 합니다. 기본 경로(공통 경로 접두사)를 제거할 수 있습니다. 예를 들어, 다음 파일에서 빌드된 라이브러리를 고려합니다.

C:\Projects
    \MyProject
        \Common
            \MyClass.cs
        \Full
            \Properties
                \AssemblyInfo.cs
            \MyAssembly.csproj (producing \lib\net40\MyAssembly.dll)
        \Silverlight
            \Properties
                \AssemblyInfo.cs
            \MySilverlightExtensions.cs
            \MyAssembly.csproj (producing \lib\sl4\MyAssembly.dll)

lib 폴더와 별개로 레거시 기호 패키지에 이 레이아웃이 포함되어야 합니다.

\src
    \Common
        \MyClass.cs
    \Full
        \Properties
            \AssemblyInfo.cs
    \Silverlight
        \Properties
            \AssemblyInfo.cs
        \MySilverlightExtensions.cs

nuspec에서 파일 참조

이전 섹션에 설명된 대로 폴더 구조에서 규칙에 의해 또는 매니페스트의 files 섹션에서 해당 내용을 지정하여 레거시 기호 패키지를 빌드할 수 있습니다. 예를 들어 이전 섹션에 표시된 패키지를 빌드하려면 .nuspec 파일에서 다음을 사용합니다.

<files>
    <file src="Full\bin\Debug\*.dll" target="lib\net40" />
    <file src="Full\bin\Debug\*.pdb" target="lib\net40" />
    <file src="Silverlight\bin\Debug\*.dll" target="lib\sl40" />
    <file src="Silverlight\bin\Debug\*.pdb" target="lib\sl40" />
    <file src="**\*.cs" target="src" />
</files>

참고 항목