建立舊版符號套件 (.symbols.nupkg)

重要

為符號套件新建議的格式為 .snupkg。 請參閱建立符號套件 (.snupkg)
.symbols.nupkg 仍受支援,但只基於相容性考慮。

除了建置 nuget.org 或其他來源的套件之外,NuGet 也支援建立可發行至符號伺服器的相關聯符號套件。

建立舊版符號套件

若要建立舊版符號套件,請遵循下列慣例:

  • 將主要套件 (含您的程式碼) 命名為 {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 應該與主要套件完全相同,只包含 .pdb DLL 旁的檔案。

例如,以 .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>

另請參閱