- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>NuGet]]
* 目次 [#mdf74180]
#contents
*概要 [#i9733684]
NuGetパッケージを作成してみたくなったので調査。
**Nugetでできること。 [#a040b4d4]
使っていれば、だいたい解っていると思うけど、
-[[.NET Framework アセンブリへの参照の追加>#ec2eb9f8]]
-[[他のNugetパッケージへの依存関係の追加>#kd3ca09a]]
-追加するファイル
--[[アセンブリの参照の追加(*.dll)>#h5442e78]]
--コンテンツファイルの追加(*.js, *.css, *.txtなど)
-その他
--複数のTarget Frameworksのサポート
--appSettingsなど、*.configの編集
--パッケージの色々
---[[Localized Package(ローカライズ)>#m0794562]]
---Pre-release Package(β版)
---Native Package(C ++)
---[[Symbol Package(デバッグ用)>#ie773165]]
*基本的な手順 [#e7f7484f]
-NuGet Gallery | Home~
https://www.nuget.org/
**Nugetのサイトにサインイン [#a55f9b01]
-NuGet Gallery | Home~
https://www.nuget.org/
-Microsoftアカウントでサインアップ可能。
--連携するのはメールアドレスで、同時にユーザ名の入力が必要。
--サインアップ後、サインインが可能になる。
--ローカル・ログオン用のパスワードはアカウント編集画面から設定可能。
-以下はサインアップ・サインイン後のアカウント編集画面~
--NuGet Gallery | Edit Profile~
https://www.nuget.org/account
**NugetのサイトからNuget.exeを取得 [#l2fefcbe]
-NuGet Gallery | Downloads~
https://www.nuget.org/downloads
>に遷移。
-Windows x86 Commandline~
nuget.exe - recommended latest vn.n.n
>をクリックして、nuget.exeをDownload。
**nuspecファイルの生成 [#jb00308a]
***nuspecファイルとは? [#v00b525f]
-パッケージのメタデータを含むXML形式のマニフェスト(公約文書)。
-マニフェスト(公約文書)は常にパッケージに含まれる。
-パッケージを構築し、消費者に情報を提供するために使用される。
***nuspecファイルの出力準備 [#b8676227]
-nuget.exeへのパスを通しておくか、~
プロジェクトファイル(*.csproj)のあるフォルダにnuget.exeを配置する。
-AssemblyInfoの属性値を使用するので、これに属性を記入しておく。
--規定値
[assembly: AssemblyTitle("Public")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("xxxxxxxxxx")]
[assembly: AssemblyProduct("Public")]
[assembly: AssemblyCopyright("Copyright (C) 2007,2016 xxxxxxxxxx")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
--以下を追加(ただ、実際にやっている人は少なそう)
[assembly : AssemblyMetadata("ProjectUrl", "http・・・")]
[assembly : AssemblyMetadata("LicenseUrl", "http・・・")]
***nuget.exeからnuspecファイルを出力 [#x6cccfb1]
-プロジェクトファイル(*.csproj)から生成する。
--プロジェクトファイル(*.csproj)のあるフォルダで[nuget spec]コマンドを実行する。
nuget spec
--*.nuspecファイルが生成される(何故か、AssemblyInfoの属性値が反映されなかった)。
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
</package>
-DLLファイル(*.dll)から生成する。
--DLLファイル(*.dll)を指定して[nuget spec]コマンドを実行する。
nuget spec [*.dllファイルパス]
--*.nuspecファイルが生成される(こちらも、AssemblyInfoの属性値が反映されていない)。
<?xml version="1.0"?>
<package >
<metadata>
<id>Public.dll</id>
<version>1.0.0</version>
<authors>(Windowsにログインしたユーザ名)</authors>
<owners>(Windowsにログインしたユーザ名)</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Tag1 Tag2</tags>
<dependencies>
<dependency id="SampleDependency" version="1.0" />
</dependencies>
</metadata>
</package>
**nuspecファイルの編集 [#ee2e5317]
-生成されたnuspecファイルを修正する。
-それぞれの項目については[[下記>#n3a85383]]を参照。
以下、ザックリとした説明。
***id [#j434d1ce]
例 : Oracle.DataAccess(.dll)とか、Microsoft.AspNet.Identity(.dll)とか。
-一意
-名前空間っぽくする。
-社名などを使うと良い。
-サンプルのパッケージは、*.Sampleを足す。
***title [#xc6afe09]
-[[id>#j434d1ce]]とは別の名称、呼称など。
-例えば、Newtonsoft.Jsonに対するJson.NETなど。~
https://www.nuget.org/packages/Newtonsoft.Json/
***description [#rbe8e1a7]
パッケージのザックリとした説明。
***authors、owners [#g9c24808]
-owners~
開発した個人。
-authors~
著作権を持つ個人・団体。
-参考
--Owner or Author ? What’s the Difference?~
http://kelleykeller.com/owner-vs-author-whats-the-difference/
***projectUrl、licenseUrl、iconUrl [#qe2df163]
各種URLを設定する。
-projectUrl
-licenseUrl
-iconUrl
***version [#r8c14f07]
-依存関係を解決する際に使用されるパッケージバージョン。
-パッケージを単一のアセンブリに限定するためのもの。
-注 :
--アセンブリバージョンではなく、パッケージバージョン
--故に、アセンブリバージョンと一致させる必要はない。
-基本的には、以下の3つを使用して「n.n.n」(Major.Minor.Patch)と構成する。
--メジャーバージョン
--マイナーバージョン
--下位互換性のあるバグ修正
-α、β版のバージョンは以下が参考になる。
--NuGet Gallery | LambdicSql_β~
https://www.nuget.org/packages/LambdicSql/0.0.3~
https://www.nuget.org/packages/LambdicSql/0.1.0
---[[id>#j434d1ce]]はRelease版と共通にして、
---[[title>#xc6afe09]]にα、βの版文字を含める
--Pre-release versions in NuGet packages | Microsoft Docs~
https://docs.microsoft.com/ja-jp/nuget/create-packages/prerelease-packages#semantic-versioning
--- -alpha: Alpha release, typically used for work-in-progress and experimentation
--- -beta: Beta release, typically one that is feature complete for the next planned release, but may contain known bugs.
--- -rc: Release candidate, typically a release that's potentially final (stable) unless significant bugs emerge.
--- -xxx: NuGet version does not support string such as "1.0.1-build.23".~
And, like this is always considered a pre-release version.
-参考
--安藤幸央のランダウン(51):意外と知らないバージョン表記・数字の豆知識 - @IT~
http://www.atmarkit.co.jp/ait/articles/1003/26/news106.html
***.NET Framework アセンブリへの参照の追加 [#ec2eb9f8]
<frameworkAssemblies>
<frameworkAssembly assemblyName="System.Web" />
</frameworkAssemblies>
***他のNugetパッケージへの依存関係の追加 [#kd3ca09a]
<dependencies>
<dependency id="jQuery" />
</dependencies>
バージョンを指定可能。範囲指定も可能。
-Dependency Versions in NuGet | Microsoft Docs~
https://docs.microsoft.com/ja-jp/nuget/create-packages/dependency-versions
***アセンブリの追加(*.dll) [#h5442e78]
[[target>https://docs.microsoft.com/ja-jp/dotnet/standard/frameworks]]を設定して、アセンブリ(*.dll)を同梱する。
<files>
<file src="bin\Release\*.*" target="lib\net45" />
</files>
***参考 [#ufd9e6b0]
https://docs.microsoft.com/ja-jp/nuget/create-packages/creating-a-package
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<!-- The identifier that must be unique within the hosting gallery -->
<!-- ホスティングギャラリー内で一意でなければならないID -->
<id>Contoso.Utility.UsefulStuff</id>
<!-- The package version number that is used when resolving dependencies -->
<!-- 依存関係を解決するときに使用されるパッケージのバージョン番号 -->
<version>1.8.3.331</version>
<!-- Authors contain text that appears directly on the gallery -->
<!-- Authorsには、ギャラリーに直接表示されるテキストが含まれています -->
<authors>Dejana Tesic, Rajeev Dey</authors>
<!-- Owners are typically nuget.org identities that allow gallery users to easily find other packages by the same owners. -->
<!-- ownersは通常、ギャラリーのユーザーが同じownerによる他のパッケージを簡単に見つけることを可能にするnuget.org IDです。 -->
<owners>dejanatc, rjdey</owners>
<!-- License and project URLs provide links for the gallery -->
<!-- licenseUrlとprojectUrlはギャラリーにリンクを提供します -->
<licenseUrl>http://opensource.org/licenses/MS-PL</licenseUrl>
<projectUrl>http://github.com/contoso/UsefulStuff</projectUrl>
<!-- The icon is used in Visual Studio's package manager UI -->
<!-- このアイコンは、Visual StudioのパッケージマネージャUIで使用されます -->
<iconUrl>http://github.com/contoso/UsefulStuff/nuget_icon.png</iconUrl>
<!-- If true, this value prompts the user to accept the license when installing the package. -->
<!-- trueの場合、この値は、パッケージのインストール時にライセンスを受け入れるようにユーザーに指示します。 -->
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<!-- Any details about this particular release -->
<!-- このリリースに関する詳細 -->
<releaseNotes>Bug fixes and performance improvements</releaseNotes>
<!-- The description can be used in package manager UI. Note that the nuget.org gallery uses information you add in the portal. -->
<!-- descriptionは、パッケージマネージャのUIで使用できます。 nuget.orgギャラリーでは、ポータルに追加した情報が使用されます。 -->
<description>Core utility functions for web applications</description>
<!-- Copyright information -->
<!-- 著作権情報 -->
<copyright>Copyright ©2016 Contoso Corporation</copyright>
<!-- Tags appear in the gallery and can be used for tag searches -->
<!-- tagsはギャラリーに表示され、tag検索に使用できます -->
<tags>web utility http json url parsing</tags>
<!-- Dependencies are automatically installed when the package is installed -->
<!-- dependencyは、パッケージのインストール時に自動的に(他のパッケージが)インストールされます。 -->
<dependencies>
<dependency id="Newtonsoft.Json" version="9.0" />
</dependencies>
</metadata>
<!-- A readme.txt will be displayed when the package is installed -->
<!-- パッケージのインストール時に readme.txt が表示されます -->
<files>
<file src="readme.txt" target="" />
</files>
</package>
**パッケージ(nupkgファイル)の作成 [#i825791f]
***プロジェクト・ファイルを使用 [#e712e2b9]
-以下のコマンドでパッケージを作成する。
nuget pack [*.csprojファイルパス]
-カレントでやれば、*.csprojファイルのパス指定は不要。
nuget pack
-リリースビルを選択する場合、
nuget pack -Prop Configuration=Release
***nuspecファイルを使用 [#g07875e2]
-「[[高度な設定>#v9ecded0]]」を行う場合はnuspecファイルを作成・指定して実行する。
nuget pack [*.nuspecファイルパス]
***nupkgファイルの内容確認方法 [#p66307ac]
「*.nupkg、*.symbols.nupkg」は ZIP ファイルなので、~
-「*.nupkg、*.symbols.nupkg」は ZIP ファイルなので、~
拡張子を「*.zip」にすれば、解凍して実際に含まれる ファイルを確認可能。
-同梱されているアセンブリの詳細については、~
「[[.NETアセンブリのtargetFrameworkを確認する方法]]」~
に記述されている方法で確認できる。
**NuGet への登録 [#q8d1dbf1]
***コマンドラインから [#a892ebc9]
-Access Keyを取得する。
Accountページに遷移してAPI Keysを取得する。
--NuGet Gallery | Edit Profile~
https://www.nuget.org/account
--E-Mail Confirmationが必要。
-以下のコマンドでNuGet へ登録する。
--方法1(urlのv1は、バージョン指定?)
nuget push -source http://packages.nuget.org/v1/ [*.nupkgファイルパス] [access key]
--方法2(URLは不要?)
nuget setapikey [access key]
nuget push [*.nupkgファイルパス]
***Webサイトから [#oafcb7ca]
NuGet Gallery でアップロードする場合、API Keysは不要。
-NuGet Gallery | Upload Package~
https://www.nuget.org/packages/manage/upload
***公開前にテスト実行する。 [#f976e345]
-以下が参考になる。
--.NET開発の新標準「NuGet」入門(後編) - @IT~
http://www.atmarkit.co.jp/fdotnet/chushin/nuget_02/nuget_02_02.html
-ざっくり、
--Nugetパッケージ マネージャーの設定で、~
パッケージ ソース(ローカルPCのフォルダ)を追加する。
--ソリューションのNugetパッケージの管理を開き、~
追加したパッケージ ソースを選択して「参照」の検索窓から検索する。
#ref(Nuget.png,left,nowrap,50%,ソリューションのNugetパッケージの管理)
--検索されたNugetパッケージを選択してインストールする。
--packagesフォルダには以下のようにインストールされる。
Touryo.Public.2.0.0
├ lib
| └ net46
| ├ Public.dll
| └ Public.XML
└ Touryo.Public.2.0.0.nupkg
--なお、依存関係も自動的に反映されるようで、~
このプロジェクトのpackages.configで使用しているパッケージも同時にインストールされた。
**バージョンアップする。 [#m026269b]
nuspec ファイルの version を書き換えて同じように nupkg をアップロード。
*高度な設定 [#v9ecded0]
**パッケージにファイルを含める [#h7f974d4]
***パッケージに含めるファイル [#z01ea2e5]
-ターゲットプロジェクトに挿入するコンテンツとソースコード
-PowerShellスクリプト(インストールスクリプト、NuGet 2.xでのみサポート)
-プロジェクト内の既存の構成ファイルおよびソースコードファイルへの変換
***作業ディレクトリのフォルダ構造レイアウトの規則 [#ee27a351]
|#|フォルダ|説明|パッケージのインストール時の動作|h
|1|tools|Package Manager ConsoleパッケージマネージャコンソールからアクセスできるPowershellスクリプトとプログラム|内容はプロジェクトフォルダにコピーされ、ツールフォルダはPATH環境変数に追加される。|
|2|lib|アセンブリファイル(.dll)、ドキュメント(.xml)ファイル、およびシンボル(.pdb)ファイル|アセンブリは参照として追加される。 .xmlと.pdbはプロジェクトフォルダにコピーされる。|
|3|content|任意のファイル|コンテンツはプロジェクトルートにコピーされる。|
|4|build|MSBuild .targetsと.propsファイル|プロジェクトファイル(NuGet 2.x)またはproject.lock.json(NuGet 3.x)に自動的に挿入される。|
***パッケージへのインクルード [#ufc7e259]
nuspecファイルの<metadata>要素と同じ階層に、~
<files>か<contentFiles>要素を追加することで、ファイルをインクルード出来る。
-[[アセンブリ・ファイル>https://docs.microsoft.com/ja-jp/nuget/schema/nuspec#including-assembly-files]]
--ファイルは*.nupkgファイルを作成するときに自動的にインクルードされる。
--<files>要素を使用し、自動動作を回避、インクルード・ファイルを明示的に制御できる。
-[[コンテンツ・ファイル>https://docs.microsoft.com/ja-jp/nuget/schema/nuspec#including-content-files]]
--contentFiles要素を使用する。
**複数のTarget Frameworksのサポート [#b3135d75]
https://docs.microsoft.com/ja-jp/nuget/create-packages/supporting-multiple-target-frameworks
「[[パッケージにファイルを含める>#h7f974d4]]」の方法で、複数バージョンを同梱するだけでいい。
***設定 [#vc3794df]
以下は、nuspecファイルの設定例
<files>
<file src="bin\Release\net46\MyAssembly.dll" target="lib\net46" />
<file src="bin\Release\net461\MyAssembly.dll" target="lib\net461" />
<file src="bin\Release\uap\MyAssembly.dll" target="lib\uap" />
<file src="bin\Release\netcore\MyAssembly.dll" target="lib\netcore" />
</files>
***結果 [#c7bee26c]
パッケージのインストール後のpackagesフォルダのlibフォルダは以下のようになる。
-lib\{framework name}[{version}]
-例:
\lib
\net46
\MyAssembly.dll
\net461
\MyAssembly.dll
\uap
\MyAssembly.dll
\netcore
\MyAssembly.dll
***参考 [#d5d16531]
Dapperのnuspecファイルが参考になる。
-dapper-dot-net/dapper.nuspec at master · perliedman/dapper-dot-net~
https://github.com/perliedman/dapper-dot-net/blob/master/dapper.nuspec#L67
<files>
<file src="Dapper NET45\bin\Release\Dapper.dll" target="lib\net45" />
<file src="Dapper NET45\bin\Release\Dapper.pdb" target="lib\net45" />
<file src="Dapper NET45\bin\Release\Dapper.xml" target="lib\net45" />
<file src="Dapper NET40\bin\Release\Dapper.dll" target="lib\net40" />
<file src="Dapper NET40\bin\Release\Dapper.pdb" target="lib\net40" />
<file src="Dapper NET40\bin\Release\Dapper.xml" target="lib\net40" />
<file src="Dapper NET35\bin\Release\Dapper.dll" target="lib\net35" />
<file src="Dapper NET35\bin\Release\Dapper.pdb" target="lib\net35" />
<file src="Dapper NET35\bin\Release\Dapper.xml" target="lib\net35" />
</files>
**様々なパッケージ [#mcfbe29c]
***Localized Package(ローカライズ) [#m0794562]
https://docs.microsoft.com/ja-jp/nuget/create-packages/creating-localized-packages
以下の2つの方法がある。
-Localized resource assembly(Localized satellite assembly)を同梱する。
--ワイルドカードを使用する方法。
--xxxx.resources.dllを個別に同梱することもできる。
-個別にLocalized satellite packagesを作成する。~
(Microsoft.Owin.ja や Microsoft.AspNet.Mvc.ja 的な)
***[[Symbol Package(デバッグ用)>NuGetパッケージのデバッグ#e3f16568]] [#ie773165]
***package type [#g888561e]
NuGet 3.5以降で設定可能。
-Dependency(既定値)~
上記の説明はコレ。
-DotnetCliTool~
.NET Coreプロジェクトにのみインストールできる.NET Core CLI ツール
-カスタムタイプパッケージ~
DependencyとDotnetCliTool以外のタイプは、~
Visual StudioのNuGet Package Managerによって認識されない。
*注意 [#x579d11b]
**一度登録すると通常消せない。 [#g6945e13]
-バージョン番号を上げてアップロードすることでアップデートする。
-必要に応じて、
--旧バージョンを非表示にすることはできる。
--別途、運営に連絡して削除することもできる。
**依存関係 [#u9a8011d]
***Dependenciesタグ [#sf97bdb3]
NuGetサイトに表示されるのは、*.nspecファイルのDependenciesタグ明記したもの。
***自動的に追加されるNuGetパッケージ [#x04c4821]
しかし、NuGetから追加された時には、
-package.configによるのか、
-バイナリ解析によるのか、
不明だが自動的に依存関係にあるNuGetパッケージが追加される。
*参考 [#y156cbe0]
**NuGetパッケージの開発と公開 [#sb50efa4]
-プロジェクトをNugetパッケージにして公開する - Qiita~
http://qiita.com/icoxfog417/items/71718196cc4f335892d4
-NuGet パッケージを作成して公開する | Do Design Space~
https://sakapon.wordpress.com/2013/07/16/nugetpackage/
-NuGet パッケージを作って公開する - しばやん雑記~
http://blog.shibayan.jp/entry/20110306/1299422776
-Nugetギャラリーにライブラリを登録するまでの手順 - SourceChord~
http://sourcechord.hatenablog.com/entry/2016/02/19/201502
-NuGet - パッケージを作成して NuGet で公開する~
https://msdn.microsoft.com/ja-jp/magazine/hh708753.aspx
-Create Packages > Overview and workflow of creating NuGet packages | Microsoft Docs~
https://docs.microsoft.com/ja-jp/nuget/create-packages/overview-and-workflow
--How to create a NuGet package~
https://docs.microsoft.com/ja-jp/nuget/create-packages/creating-a-package
--Dependency Versions in NuGet~
https://docs.microsoft.com/ja-jp/nuget/create-packages/dependency-versions
--Supporting Multiple Target Frameworks~
https://docs.microsoft.com/ja-jp/nuget/create-packages/supporting-multiple-target-frameworks
--Creating Localized Packages~
https://docs.microsoft.com/ja-jp/nuget/create-packages/creating-localized-packages
--Symbol Packages~
https://docs.microsoft.com/ja-jp/nuget/create-packages/symbol-packages
--Publish a Package~
https://docs.microsoft.com/ja-jp/nuget/create-packages/publish-a-package
**nuspecファイルの定義例 [#h83986d2]
***著名なパッケージを参考にする。 [#i7310626]
-Newtonsoft.Json(Json.NET)~
https://github.com/JamesNK/Newtonsoft.Json/blob/master/Build/Newtonsoft.Json.nuspec
-Dapper~
https://github.com/perliedman/dapper-dot-net/blob/master/dapper.nuspec
***Open棟梁のパッケージを参考にする。 [#ad8e8930]
-/OpenTouryoProject/OpenTouryo/~
https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/C%23/NuGet
-NuGet導入、NuGet登録 - Open 棟梁 Wiki~
https://opentouryo.osscons.jp/index.php?NuGet%E5%B0%8E%E5%85%A5%E3%80%81NuGet%E7%99%BB%E9%8C%B2
**nuspecファイルのメタデータ要素 [#n3a85383]
-.nuspec File Reference for NuGet | Microsoft Docs~
https://docs.microsoft.com/ja-jp/nuget/schema/nuspec
--NuGet.Client/nuspec.xsd at dev · NuGet/NuGet.Client~
https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Packaging/compiler/resources/nuspec.xsd
>このnuspec.xsdをVisual Studioで確認するとSchemeの詳細が解るらしい。
***必要なメタデータ要素(最小要件) [#t3a22c04]
|#|要素|説明|h
|1|id|大文字と小文字を区別しない、nuget.orgなどのパッケージ・ギャラリー内で一意なパッケージ識別子。&br;IDにはURLに有効でないスペースや文字含めない。|
|2|version|major.minor.patchパターンのパッケージのバージョン。&br;バージョン番号には、[[プレリリースパッケージ>https://docs.microsoft.com/ja-jp/nuget/create-packages/prerelease-packages#semantic-versioning]]に記載されているリリース前のサフィックスが含まれている場合がある。|
|3|description|nuget.orgでパッケージのページを表示したときに表示される概要説明文|
|4|authors|パッケージ著者のカンマ区切りのリスト。|
***オプションのメタデータ要素(必要に応じて追加) [#y3cb29dd]
-単項目
|#|要素名|説明|h
|1|title|パッケージには、一般的にはUIで使用される、パッケージの人間にとって使いやすいタイトルがnuget.orgやVisual Studioのパッケージマネージャで表示される。&br;指定しない場合、パッケージIDが代わりに使用される。|
|2|owners|nuget.orgでプロファイル名を使用しているパッケージ作成者のカンマ区切りのリスト。&br;これらはnuget.orgのNuGet Galleryに表示され、同じ著者によるパッケージの相互参照に使用されている。|
|3|projectUrl|パッケージのホームページのURL。&br;多くの場合、UI表示とnuget.orgに表示される。|
|4|licenseUrl|パッケージのライセンスのURL。&br;nuget.orgと同様にUI表示にも表示されることがよくある。|
|5|iconUrl|UI表示でパッケージのアイコンとして使用する透過背景を持つ64x64画像のURL。|
|6|requireLicenseAcceptance|パッケージをインストールする前に、パッケージライセンスを受け入れるようにクライアントに指示する必要があるかどうかを指定するブール値。|
|7|developmentDependency|(2.8+)パッケージが開発専用依存としてマークされるかどうかを指定するブール値。&br;パッケージが他のパッケージへの依存として含まれないようにする。|
|8|summary|Visual Studioから検索して表示される一覧表示用のパッケージの短い説明。&br;省略された場合、記述の切り詰められたバージョンが使用される。|
|9|releaseNotes|(1.5+)このパッケージのリリースで行われた変更の説明。&br;パッケージ説明の代わりにVisual Studioパッケージマネージャの[更新]タブなどのUIでよく使用される。|
|10|copyright|(1.5+)パッケージの著作権詳細。|
|11|language|パッケージのロケールID。&br;ローカライズされたパッケージの作成を参照。|
|12|tags|パッケージを記述するタグとキーワードのスペース区切りリストで、&br;検索とフィルタリングのメカニズムを通じたパッケージの発見可能性を支援する。|
|13|serviceable|(3.3+)内部NuGet専用|
|14|minClientVersion|(2.5+)このパッケージをインストールできるNuGetクライアントの最小バージョンを指定する。&br;このバージョンは、nuget.exeとVisual Studio Package Managerによって適用される。&br;これは、パッケージがNuGetクライアントの特定のバージョンで追加された.nuspecファイルの特定の機能に依存する場合に使用される。&br;例えば、developmentDependency属性を使用するパッケージは、minClientVersionに「2.8」を指定する。&br;同様に、contentFiles要素を使用するパッケージ(次のセクションを参照)は、minClientVersionを "3.3"に設定する。&br;また、2.5より前のNuGetクライアントはこのフラグを認識しないため、minClientVersionで使用する値に関係なく、常にパッケージのインストールを拒否する。|
-複数項目
|#|要素名|説明|h
|1|packageTypes|(3.3+)伝統的な依存パッケージ以外のパッケージのタイプを指定する0個以上の<packageType>要素の集合。&br;各packageTypeにはnameとversionの属性がある。パッケージタイプの設定を参照。|
|2|dependencies|パッケージの依存関係を指定する0個以上の<dependency>要素の集合。&br;各依存関係には、id、version、include(3.x +)、およびexclude(3.x +)の属性がある。&br;下記の依存関係を参照。|
|3|frameworkAssemblies|(1.2+)このパッケージに必要な.NET Frameworkアセンブリ参照を識別する0個以上の<frameworkAssembly>要素のコレクション。&br;パッケージを使用するプロジェクトに参照が確実に追加される。&br;各frameworkAssemblyにはassemblyName属性とtargetFramework属性がある。&br;下記のフレームワークアセンブリ参照GACの指定を参照。|
|4|references|(1.5+)プロジェクトの参照として追加される、パッケージのlibフォルダ内のアセンブリを命名する0個以上の<reference>要素のコレクション。&br;各参照にはファイル属性がある。&br;<references>は、<reference>要素を含むtargetFramework属性を持つ<group>要素も含むことができる。&br;省略すると、libのすべての参照が含まれる。&br;下記の明示的アセンブリ参照の指定を参照。|
|5|contentFiles|(3.3+)コンシューマプロジェクトに含めるコンテンツファイルを識別する<files>要素のコレクション。&br;これらのファイルは、プロジェクトシステム内でどのように使用されるべきかを記述する一連の属性で指定される。&br;下記のパッケージに含めるファイルの指定を参照。|
**[[NuGetパッケージのデバッグ]] [#w62300b5]
----
Tags: [[:.NET開発]], [[:デプロイ]], [[:NuGet]]