Partager via


Créer des packages .NET Standard et .NET Framework avec Visual Studio 2015

Remarque : Visual Studio 2017 est recommandé pour développer des bibliothèques .NET Standard. Visual Studio 2015 peut fonctionner, mais les outils .NET Core n’étaient qu’en préversion. Consultez la page Créer et publier un package avec Visual Studio 2017 pour utiliser NuGet 4.x+ et Visual Studio 2017.

La bibliothèque .NET Standard est une spécification formelle des API .NET destinées à être disponibles sur tous les runtimes .NET, renforçant ainsi l’uniformité de l’écosystème .NET. La bibliothèque .NET Standard définit un ensemble uniforme d’API de bibliothèque de classes de base pour toutes les plateformes .NET à implémenter, indépendamment de la charge de travail. Elle permet aux développeurs de produire du code qui est utilisable sur tous les runtimes .NET, et réduit, si ce n’est élimine, les directives de compilation conditionnelle spécifiques à la plateforme dans le code partagé.

Ce guide vous explique comment créer un package NuGet ciblant une bibliothèque .NET Standard 1.4 ou .NET Framework 4.6. Une bibliothèque .NET Standard 1.4 fonctionne sur .NET Framework 4.6.1, la plateforme Windows universelle 10, .NET Core et Mono/Xamarin. Pour plus d’informations, consultez la table de mappage .NET Standard (documentation .NET). Vous pouvez choisir une autre version de la bibliothèque .NET Standard si vous le souhaitez.

Prérequis

  1. Visual Studio 2015 Update 3

  2. (.NET Standard uniquement) Kit SDK .NET Core

  3. Interface de ligne de commande NuGet. Téléchargez la dernière version de nuget.exe à partir de nuget.org/downloads, puis enregistrez-la dans un emplacement de votre choix. Ajoutez ensuite cet emplacement à votre variable d’environnement PATH, si ce n’est déjà fait.

    Notes

    nuget.exe étant l’outil CLI proprement dit, pas un programme d’installation, veillez à enregistrer le fichier téléchargé à partir de votre navigateur au lieu de l’exécuter.

Créer le projet de bibliothèque de classes

  1. Dans Visual Studio, fichier > nouveau > Project, développez le nœud Windows Visual C#>, sélectionnez Bibliothèque de classes (portable), remplacez le nom par AppLogger, puis sélectionnez OK.

    Create new class library project

  2. Dans la boîte de dialogue Ajouter une bibliothèque de classes portable qui s’affiche, sélectionnez les options de .NET Framework 4.6 et de ASP.NET Core 1.0. (Si vous ciblez .NET Framework, vous pouvez sélectionner n’importe quelle option correspondante.)

  3. Si vous ciblez .NET Standard, cliquez avec le bouton droit sur le AppLogger (Portable) Explorateur de solutions, sélectionnez Propriétés, sélectionnez l’onglet Bibliothèque, puis sélectionnez Target .NET Platform Standard dans la section Ciblage. Cette action demande une confirmation, après quoi vous pourrez sélectionner .NET Standard 1.4 (ou une autre version disponible) dans la liste déroulante :

    Setting the target to .NET Standard 1.4

  4. Cliquez sur l’onglet Générer, définissez Configuration sur Release, puis cochez la case Fichier de documentation XML.

  5. Ajoutez votre code au composant, par exemple :

    namespace AppLogger
    {
        public class Logger
        {
            public void Log(string text)
            {
                Console.WriteLine(text);
            }
        }
    }
    
  6. Définissez la configuration Release, générez le projet et vérifiez que les fichiers DLL et XML sont produits dans le dossier bin\Release.

Créer et mettre à jour le fichier .nuspec

  1. Ouvrez une invite de commandes, accédez au dossier contenant le dossier AppLogger.csproj (un niveau en dessous du fichier .sln) et exécutez la commande NuGet spec pour créer le fichier AppLogger.nuspec initial :

    nuget spec
    
  2. Ouvrez AppLogger.nuspec dans un éditeur et mettez-le à jour afin qu’il corresponde au code ci-après, en remplaçant YOUR_NAME par une valeur appropriée. La <id> valeur, en particulier, doit être unique dans nuget.org (consultez les conventions d’affectation de noms décrites dans Création d’un package. De plus, vous devez également mettre à jour les balises authors et description afin de ne pas obtenir d’erreur durant l’empaquetage.

    <?xml version="1.0"?>
    <package >
        <metadata>
        <id>AppLogger.YOUR_NAME</id>
        <version>1.0.0</version>
        <title>AppLogger</title>
        <authors>YOUR_NAME</authors>
        <owners>YOUR_NAME</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Awesome application logging utility</description>
        <releaseNotes>First release</releaseNotes>
        <copyright>Copyright 2018 (c) Contoso Corporation. All rights reserved.</copyright>
        <tags>logger logging logs</tags>
        </metadata>
    </package>
    
  3. Ajoutez des assemblys de référence au fichier .nuspec, concrètement les fichiers DLL et XML IntelliSense de la bibliothèque :

    Si vous ciblez .NET Standard, les entrées se présentent ainsi :

    <!-- Insert below <metadata> element -->
    <files>
        <file src="bin\Release\AppLogger.dll" target="lib\netstandard1.4\AppLogger.dll" />
        <file src="bin\Release\AppLogger.xml" target="lib\netstandard1.4\AppLogger.xml" />
    </files>
    

    Si vous ciblez .NET Framework, les entrées se présentent ainsi :

    <!-- Insert below <metadata> element -->
    <files>
        <file src="bin\Release\AppLogger.dll" target="lib\net46\AppLogger.dll" />
        <file src="bin\Release\AppLogger.xml" target="lib\net46\AppLogger.xml" />
    </files>
    
  4. Cliquez avec le bouton droit sur la solution et sélectionnez Générer la solution pour générer tous les fichiers du package.

Déclaration des dépendances

Si vous avez des dépendances sur d’autres packages NuGet, répertoriez-les dans l’élément <dependencies> du manifeste avec des éléments <group>. Par exemple, pour déclarer une dépendance sur NewtonSoft.Json version 8.0.3 ou supérieure, ajoutez le code suivant :

<!-- Insert within the <metadata> element -->
<dependencies>
    <group targetFramework="uap">
        <dependency id="Newtonsoft.Json" version="8.0.3" />
    </group>
</dependencies>

La syntaxe de l’attribut version indique ici que la version 8.0.3 ou supérieure est acceptable. Pour spécifier des plages de versions différentes, consultez Gestion de version des packages.

Ajout d’un fichier readme

Créez votre fichier readme.txt, placez-le dans le dossier racine du projet, puis faites-y référence dans le fichier .nuspec :

<?xml version="1.0"?>
<package >
    <metadata>...
    </metadata>
    <files>
    <file src="readme.txt" target="" />
    </files>
</package>

Visual Studio affiche readme.txt quand le package est installé dans un projet. Les fichiers n’est pas affiché quand il est installé dans des projets .NET Core ou pour des packages qui sont installés en tant que dépendance.

Empaqueter le composant

Une fois que le fichier .nuspec est finalisé et qu’il référence tous les fichiers à inclure dans le package, vous pouvez exécuter la commande pack :

nuget pack AppLogger.nuspec

Cette opération génère AppLogger.YOUR_NAME.1.0.0.nupkg. Si vous ouvrez ce fichier dans un outil comme NuGet Package Explorer et que vous développez tous les nœuds, le contenu suivant (indiqué pour .NET Standard) apparaît :

NuGet Package Explorer showing the AppLogger package

Conseil

Un fichier .nupkg est simplement un fichier zip avec une extension différente. Vous pouvez alors également examiner le contenu de package en définissant .nupkg sur .zip, mais n’oubliez pas de restaurer l’extension avant de charger un package sur nuget.org.

Pour rendre votre package disponible pour d’autres développeurs, suivez les instructions de publication d’un package.

Notez que pack nécessite Mono 4.4.2 sur Mac OS X et ne fonctionne pas sur les systèmes Linux. Sur un Mac, vous devez également convertir les chemins d’accès Windows dans le fichier .nuspec en chemins d’accès de style Unix.