Comment puis-je créer un package Nuget avec Visual Studio 2017
Je fais construire une .net 4.5 dll de bibliothèque de classe à l'aide de Visual Studio 2017
.
Je souhaite paquet de cette dll, et quelques dossiers connexes de javascript, html, css et autres fichiers comme NuGet
paquet.
Malheureusement, je ne sais pas par où commencer - la seule consigne que je peux trouver pour la création de NuGet
forfaits s'appliquent à Visual Studio 2015
. Je me suis dit NuGet
est inclus dans Visual Studio 2017
, mais si j'ouvre un Developer Command Prompt for VS 2017
, et le type Nuget
, la commande n'est pas trouvée.
J'ai l'impression que Visual Studio 2017
pouvez construire NuGet
paquets .Net les projets standard, mais pas dans d'autres types de projet.
Suis-je censé retourner à Visual Studio 2015
, ou quoi?
OriginalL'auteur Nikki Locke | 2017-06-20
Vous devez vous connecter pour publier un commentaire.
Il y a quelques questions distinctes ici:
Sur le VS intégration: Dans VS < 2017 NuGet est généralement une extension qui pourrait être mis à jour individuellement. En VS en 2017, l'extension est étroitement intégré et mis à jour via des mises à jour VS lui-même. Cela n'a jamais figuré dans la ligne de commande
nuget.exe
qui est habituellement utilisé pour l'emballage et pousser les paquets - ce client en ligne de commande est disponible à partir de NuGet est la page de téléchargement.Le "classique" approches de l'emballage .NET des projets de travaux et sont documentées dans nuget est la page de documentation, il est particulièrement important de la section "La création de l' .fichier nuspec ... à partir d'un projet Visual Studio".
VS 2017 a également introduit un nouveau type de projets qui utilisent la ".NET Sdk" qui a évolué à partir de l' .NET de Base de l'outillage. Ces projets sont intégrés avec NuGet et peut être emballé par VS et directement à partir de MSBuild /
dotnet pack
. Ce type de projet peut également être utilisé pour créer .NET Framework packages NuGet. Cependant, il n'y a pas un modèle de VS depuis quelques fonctionnalités disponibles pour le classique .NET les projets ne sont pas mis en œuvre (par exemple, les Concepteurs pour xaml,edmx). Mais pour la plupart de la logique des bibliothèques, vous pouvez créer un .NET Standard projet et de modifier le fichier csproj de changerà
donc ciblé par le projet .NET 4.6.1 (les autres versions éventuelles). Ce projet aura la même intégré la fonctionnalité de l'emballage .NET Standard et .NET de Base des projets. Vous pouvez suivre le Guide "Créer des .NET Packages Standard avec Visual Studio 2017" mais effectuer cette modification sur le fichier de projet après la création.
Afin d'inclure des éléments dans le paquet, vous pouvez utiliser les métadonnées suivantes:
Cela permettra de mettre les fichiers dans un
content
etcontentFiles
répertoire dans la boîte de nuget. Lorsque le paquet résultant est consommée par l'intermédiaire d'unProjectReference
, le contentFile besoin d'un autre attribut de métadonnées pour s'assurer que la référence au projet d'exemplaires à sa sortie sur la compilation:Cette propriété, cependant, est seulement pris en charge dans la prochaine VS 2017 15.3 /mise à jour .NET SDK de Base 1.1/2.0 (pas encore sorti au moment de la rédaction).
J'ai un peu plus bas dans la voie d'une création NETTE de projet standard et de reciblage pour NET4.5, mais comme ma question précédente sur stackoverflow.com/questions/44498659/... les états, il y a peu ou pas de documentation sur la façon d'ajouter des fichiers supplémentaires dans le paquet (et, idéalement, de les marquer comme être copié dans le répertoire de sortie lorsque le référencement projet est compilé).
Ajout d'un paragraphe sur le contenu des fichiers. La dernière étape n'est pas dans la remise des pièces encore cependant :(, j'avais déposé le GitHub question pour elle github.com/NuGet/Home/issues/5259 qui a été résolu très récemment.
De l'utiliser dans des projets "classiques" devraient copier les fichiers à la consommation de projet
Puis-je vous suggérer de mettre à jour le guide de démarrage rapide de documents à inclure des instructions pour VS 2017?
OriginalL'auteur Martin Ullrich