トレーニング
モジュール
新しい .NET プロジェクトを作成し、パッケージの依存関係を処理する - Training
.NET プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 .NET Core CLI と NuGet レジストリを使用して、Visual Studio Code でライブラリとツールを C# アプリケーションに追加します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
NuGet 2.2.1 リリース ノート | NuGet 2.6 リリース ノート
NuGet 2.5 は 2013 年 4 月 25 日にリリースされました。 このリリースはたいへん大きく、バージョン 2.3 と 2.4 をスキップせざるを得ませんでした。 これまで NuGet 用の最大のリリースで、リリースでは[160 work items](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.5&status=all)
をオーバーしています。
NuGet 2.5 に多大な貢献をしていただいた次の外部共同作成者に深く感謝をいたします。
[Daniel Plaisted](https://www.codeplex.com/site/users/view/dsplaisted)
(@dsplaisted) [#2847](https://nuget.codeplex.com/workitem/2847)
- 既知のターゲット フレームワーク識別子のリストに MonoAndroid、MonoTouch、MonoMac を追加。[Andres G. Aragoneses](https://www.codeplex.com/site/users/view/knocte)
(@knocte) [#2865](https://nuget.codeplex.com/workitem/2865)
- 大文字と小文字の区別 OS の NuGet.targets
スペルをフィックスする[David Fowler](https://www.codeplex.com/site/users/view/dfowler)
(@davidfowl) [Andrew Theken](https://www.codeplex.com/site/users/view/atheken)
(@atheken) [Olivier Dagenais](https://www.codeplex.com/site/users/view/OliIsCool)
(@OliIsCool) [#2920](https://nuget.codeplex.com/workitem/2920)
- nuget.exe pack コマンドが MSBuild にプロパティを伝達しない[Miroslav Bajtos](https://www.codeplex.com/site/users/view/MiroslavBajtos)
(@bajtos) [#1511](https://nuget.codeplex.com/workitem/1511)
- 書式設定を保持するように XMLハンドルコードを変更しました。[Adam Ralph](http://www.codeplex.com/site/users/view/adamralph)
(@adamralph) [Bruno Roggeri](https://www.codeplex.com/site/users/view/broggeri)
[Gareth Evans](https://www.codeplex.com/site/users/view/garethevans)
[Maxime Brugidou](https://www.codeplex.com/site/users/view/brugidou)
(@brugidou) [#936](https://nuget.codeplex.com/workitem/936)
- パッキング時にプロジェクトの依存関係をハンドル[Xavier Decoster](https://www.codeplex.com/site/users/view/XavierDecoster)
(@XavierDecoster) [#2991](https://nuget.codeplex.com/workitem/2991)
、 [#3164](https://nuget.codeplex.com/workitem/3164)
- nuget.cofig ファイルにパッケージ ソース化する認証情報を格納するときのクリア テキストのパスワード対応[James Manning](http://www.codeplex.com/site/users/view/jmanning)
(@manningj) [#3190](http://nuget.codeplex.com/workitem/3190)
、 [#3191](https://nuget.codeplex.com/workitem/3191)
- Get-パッケージのヘルプの説明をフィックスまた、最終リリースの前に承認およびフィックスされた NuGet 2.5 ベータ/RC のバグを見つけた以下の個人に感謝します。
[Tony Wall](https://www.codeplex.com/site/users/view/CodeChief)
(@CodeChief) [#3200](https://nuget.codeplex.com/workitem/3200)
- 最新の NuGet 2.4 と 2.5 ビルドで破損した MSTestNuGet パッケージに含む場合、ディスクに既に存在する内容ファイルを上書きする機能は、常に最も要求されている機能の 1 つです。 NuGet 2.5 以降では、これらの競合が識別され、ファイルを上書きするように求められますが、以前はこれらのファイルは常にスキップされていました。
'nuget.exe update' と 'Install-Package' の両方に、コマンド ライン シナリオのデフォルトを設定するための新しいオプション '-FileConflictAction' が追加されました。
パッケージのファイルがターゲット プロジェクトに既に存在する場合はデフォルトアクションを設定します。 常にファイルを上書きするには、[上書き] に設定します。 ファイルをスキップするには、[無視] に設定します。 指定しない場合、競合するファイルごとにプロンプトが表示されます。
NuGet パッケージの最上位平準化に新しい従来のフォルダーが作成されました。 \lib
、\content
、\tools
,へのピアとして、パッケージに\build
フォルダーを含むことができます。 このフォルダーの下には、{packageid}.targets
または{packageid}.props
の固定名の 2 つのファイルを配置できます。 これら 2 つのファイルは、他のフォルダーと同様、build
のすぐ下またはフレームワーク固有のフォルダー下に存在できます。 ベストに一致するフレームワーク フォルダーを選択するための規則は、それらとまったく同じです。
NuGet で \build ファイルを使用してパッケージをインストールすると、.targets
と.props
ファイルをポイントしている MSBuild <Import>
要素がプロジェクト ファイルに追加されます。 .props
ファイルは上に追加されますが、 .targets
ファイルは下に追加されます。
2.5 より前の.nuspec
ファイルでは 、ユーザーはすべてのフレームワークに追加するリファレンスファイルのみを指定できます。 2.5 のこの新機能により、ユーザーは対応している各プラットフォームの<reference/>
要素を作成できます。次に例を示します。
<references>
<group targetFramework="net45">
<reference file="a.dll" />
</group>
<group targetFramework="netcore45">
<reference file="b.dll" />
</group>
<group>
<reference file="c.dll" />
</group>
</references>
NuGet が.nuspec
ファイルに基づいてプロジェクトへのリファレンスを追加する方法のフローを次に示します。
lib
フォルダーを見つけ、そのフォルダーからアセンブリのリストを取得この新機能により、パッケージ作成者はリファレンス機能を使用して、複数のフォルダーに重複するアセンブリを含める必要がある場合に、アセンブリのサブセットを異 lib
なるフレームワークに適用できます。
注: この機能を使用するには、現在 nuget.exe パックを使用する必要があります。NuGet パッケージ エクスプローラーは未対応です。
すべてのパッケージを更新するための[Update-Package] PowerShell コマンドレットについては周知のとおりです。UI を介してこれを行う簡単な方法があります。
次の手順でこの機能を使用できます。
nuget.exe pack コマンドは、参照先のプロジェクトを次の規則で処理するようになりました。
.nuspec
ファイルがある場合 (例えば、proj1.csproj
と同じフォルダーに呼び出されたproj1.nuspec
と呼ばれているファイルがある場合)、このプロジェクトは、.nuspec
ファイルから読み取られた ID とバージョンを使用して、パッケージへの依存関係として追加されます。.pdb
、 および .exe
ファイルが追加されます。これにより、.nuspec
ファイルがある場合は参照先プロジェクトが依存関係として扱われ、それ以外の場合は パッケージの一部になります。
詳細については[http://nuget.codeplex.com/workitem/936](http://nuget.codeplex.com/workitem/936)
をご覧ください。
'minClientVersion' という名前の新しいメタデータ属性は、パッケージを実行するための要件である最小 NuGet クライアント バージョンを示すようになりました。
この機能は、パッケージ作成者が特定バージョンの NuGet の後でのみパッケージを動作するように指定するのに役立ちます。 NuGet 2.5 の後に新しい.nuspec
機能が追加されると、パッケージは最小 NuGet バージョンを要求できるようになります。
<metadata minClientVersion="2.6">
ユーザーが NuGet 2.5 をインストール済みで、パッケージが 2.6 を必要としていると識別された場合、パッケージがインストールできないことを示す視覚的な手掛かりがユーザーに提供されます。 その後、ユーザーは自分のバージョンの NuGet を更新するように指示されます。
これにより、パッケージのインストールを開始した後、認識できないスキーマ バージョンが識別されたことを示すエラーが発生する既存の環境が改善します。
NuGet 2.5 以前、プロジェクトに既にインストールされているパッケージに依存するパッケージがインストールされていた場合、既存バージョンが依存関係を満たしている場合でも、依存関係は新しいインストールの一部として更新されます。
NuGet 2.5 開始以降では、依存関係のバージョンが既に満たされている場合、他のパッケージのインストール中に依存関係は更新されません。
シナリオ:
NuGet 2.2 以前の場合:
NuGet 2.5 以降:
この変更の背景については、詳細 [work item](https://nuget.codeplex.com/workitem/1681)
と関連 する[discussion thread](https://nuget.codeplex.com/discussions/436712)
を参照してください。
nuget.exe のトラブルシューティングを行っているか演算中に行われる HTTP 要求が気になる場合は、[-verbosity detailed]スイッチによって、行われたすべての HTTP 要求が出力されるようになりました。
NuGet 2.5 より前では、UNC パスまたはローカル フォルダーに基づいてパッケージ ソースに 'nuget.exe push' を実行しようとすると、プッシュは失敗するはずです。 最近追加された階層構成機能では、nuget.exe が UNC/フォルダー ソースまたは HTTP ベースの NuGet ギャラリーをターゲットにすることが概して必要になりました。
NuGet 2.5 からは、nuget.exe が UNC/フォルダー ソースを識別すると、ソースにファイルがコピーされます。
次のコマンドが機能します。
nuget push -source \\mycompany\repo\ mypackage.1.0.0.nupkg
構成にアクセスする nuget.exe コマンド ('spec' と 'pack' を除くすべて) で新しい '-ConfigFile' オプションに対応します。これにより、%AppData%\nuget\Nuget.Config のデフォルト構成ファイルの代わりに特定の構成ファイルが強制的に使用されるようになります。
例:
nuget sources add -name test -source http://test -ConfigFile C:\test\.nuget\Nuget.Config
NuGet 2.5 では、Visual Studio のネイティブ プロジェクトで NuGet ツールを使用可能です。 大部分のネイティブ パッケージでは、CoApp プロジェクトによって作成されたツールを使用し、上記の MSBuild インポート機能を利用する予定です。 詳細についてcoapp.org Web サイトでツールの詳細を参照してください。
「native」 のターゲット フレームワーク名前は、パッケージがネイティブ プロジェクトにインストールされるときに、ビルド、内容、ツールにファイルを含めるために導入されます。 [lib]フォルダーはネイティブ プロジェクトには使用されません。
トレーニング
モジュール
新しい .NET プロジェクトを作成し、パッケージの依存関係を処理する - Training
.NET プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 .NET Core CLI と NuGet レジストリを使用して、Visual Studio Code でライブラリとツールを C# アプリケーションに追加します。