ここではいくつかの異なる質問があります:
VSの統合について:VS < 2017 NuGetでは、通常、個別に更新することができ拡張子ました。 VS 2017では、拡張機能は緊密に統合され、VS自体への更新を介して更新されます。パッケージをパックしてプッシュするために通常使用されるコマンドラインnuget.exe
は含まれていませんでした。このコマンドラインクライアントはNuGet's download pageから入手できます。
.NETプロジェクトをパッケージ化するための「古典的な」アプローチはまだ動作し、nuget's documentation pageに記載されています。特に重要なのは、"Creating the .nuspec file … from a Visual Studio project"セクションです。
VS 2017には、.NETコアツールから進化した「.NET Sdk」を使用する新しいタイプのプロジェクトも導入されています。これらのプロジェクトはNuGetと統合されており、VSで、そしてMSBuild/dotnet pack
から直接パックすることができます。このプロジェクトタイプは、.NET Framework NuGetパッケージの作成にも使用できます。ただし、従来の.NETプロジェクトで使用可能な一部の機能は実装されていないため、VSにテンプレートはありません(たとえば、Designers for xaml、edmx)。しかし、ほとんどのロジックライブラリのためにあなたはとてもプロジェクトは(可能な他のバージョン).NET 4.6.1を対象とします.NETの標準プロジェクトを作成し、
<TargetFramework>net461</TargetFramework>
に
<TargetFramework>netstandard1.6</TargetFramework>
を変更するcsprojファイルを編集することができます。このプロジェクトでは、.NET標準および.NETコアプロジェクトと同じ統合されたパッキング機能が使用されます。ガイド"Create .NET Standard Packages with Visual Studio 2017"に従うこともできますが、プロジェクトファイルを作成した後にその変更を実行してください。
パッケージに項目を含めるためには、次のようなメタデータを使用することができます。これは、結果nugetでcontent
とcontentFiles
ディレクトリの両方にファイルを置く
<ItemGroup>
<Content Include="**\*.txt" Pack="true" />
</ItemGroup>
を。
<ItemGroup>
<Content Include="**\*.txt" Pack="true" PackageCopyToOutput="true" />
</ItemGroup>
このプロパティは、しかし、唯一の今後のVS 2017でサポートされています。その結果、パッケージがProjectReference
経由で消費されると、コンテンツファイルは、ビルドにその出力に参照元のプロジェクトのコピー、それがあることを確認するために追加のメタデータ属性を必要とします15.3 update/.NET Core SDK 1.1/2.0(ただし、執筆時点ではまだリリースされていません)。
ここに簡単な説明があります:https://www.jweiler.com/create-nuget-packages-with-vs-2017/ – RenniePet