次の方法で共有


レガシ シンボル パッケージ (.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>

こちらも参照ください