2017-06-20 28 views
4

Visual Studio 2017を使用して.net 4.5クラスライブラリdllを構築しています。Visual StudioでNugetパッケージを作成する方法2017

私は、このDLLと、NuGetパッケージのようなjavascript、html、cssおよびそのようなファイルのいくつかの関連フォルダをパッケージ化したいと考えています。

残念ながら、どこから開始するのかわかりません。NuGetパッケージを作成するための唯一の指示は、Visual Studio 2015に適用されます。私はNuGetVisual Studio 2017に含まれていると言いますが、Developer Command Prompt for VS 2017を開いてNugetと入力すると、コマンドが見つかりません。

Visual Studio 2017は.Net標準プロジェクトでNuGetパッケージをビルドできますが、他のタイプのプロジェクトではビルドできないという印象を受けます。

私はVisual Studio 2015に戻ると思いますか?

+0

ここに簡単な説明があります:https://www.jweiler.com/create-nuget-packages-with-vs-2017/ – RenniePet

答えて

6

ここではいくつかの異なる質問があります:

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でcontentcontentFilesディレクトリの両方にファイルを置く

<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(ただし、執筆時点ではまだリリースされていません)。

+0

Nugetのダウンロードページには、VS2017にNuGetが含まれていると具体的に言われていますそうではありません。このステートメントは、コマンドラインのバージョンをダウンロードすることを私に任せていました(以前のバージョンのVS用であるはずです)。私は、ナゲットのドキュメントページを見て、https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-packageに私を紹介しました。これは、インストールを指示することから始まりますVS 2015!あなたは私がどのように混乱しているかを見ることができます。 –

+0

私はNET標準プロジェクトを作成し、それをNET4.5にリターゲットする道を少し手に入れましたが、以前の質問はhttps://stackoverflow.com/questions/44498659/how-do-you-add-スタジオ2017/44660029#44660029の追加ファイルとナゲットのパッケージでは、ファイルをパッケージに追加する方法はほとんどありません(理想的には、参照元のプロジェクトがコンパイルされたときに出力ディレクトリにコピーされます)。 –

+0

コンテンツファイルに関する段落が追加されました。最後のステップはまだリリースされていない部分です:(私は非常に最近解決されたhttps://github.com/NuGet/Home/issues/5259のGitHub問題を提出しました –

関連する問題