Déploiement d’une application web ASP.NET avec SQL Server Compact à l’aide de Visual Studio ou de Visual Web Developer : déploiement de bases de données SQL Server Compact - 2 sur 12
par Tom Dykstra
Télécharger le projet de démarrage
Cette série de tutoriels vous montre comment déployer (publier) un projet d’application web ASP.NET qui inclut une base de données SQL Server Compact à l’aide de Visual Studio 2012 RC ou Visual Studio Express RC 2012 pour web. Vous pouvez également utiliser Visual Studio 2010 si vous installez la mise à jour de publication web. Pour une présentation de la série, consultez le premier tutoriel de la série.
Pour obtenir un didacticiel qui montre les fonctionnalités de déploiement introduites après la version rc de Visual Studio 2012, montre comment déployer SQL Server éditions autres que SQL Server Compact et montre comment déployer sur Azure App Service Web Apps, consultez déploiement web ASP.NET à l’aide de Visual Studio.
Vue d’ensemble
Ce tutoriel montre comment configurer deux bases de données SQL Server Compact et le moteur de base de données pour le déploiement.
Pour l’accès à la base de données, l’application Contoso University nécessite les logiciels suivants qui doivent être déployés avec l’application, car ils ne sont pas inclus dans le .NET Framework :
- SQL Server Compact (moteur de base de données).
- Fournisseurs universels ASP.NET (qui permettent au système d’appartenance ASP.NET d’utiliser SQL Server Compact)
- Entity Framework 5.0(Code First with Migrations).
La structure de base de données et certaines (pas toutes) des données des deux bases de données de l’application doivent également être déployées. En règle générale, lorsque vous développez une application, vous entrez des données de test dans une base de données que vous ne souhaitez pas déployer sur un site actif. Toutefois, vous pouvez également entrer des données de production que vous souhaitez déployer. Dans ce tutoriel, vous allez configurer le projet Contoso University afin que les logiciels requis et les données appropriées soient inclus lors du déploiement.
Rappel : si vous recevez un message d’erreur ou si un élément ne fonctionne pas pendant le tutoriel, veillez à case activée la page de résolution des problèmes.
SQL Server Compact et SQL Server Express
L’exemple d’application utilise SQL Server Compact 4.0. Ce moteur de base de données est une option relativement nouvelle pour les sites web ; les versions antérieures de SQL Server Compact ne fonctionnent pas dans un environnement d’hébergement web. SQL Server Compact offre quelques avantages par rapport au scénario plus courant de développement avec SQL Server Express et de déploiement en SQL Server complète. Selon le fournisseur d’hébergement que vous choisissez, SQL Server Compact peut être moins cher à déployer, car certains fournisseurs facturent des frais supplémentaires pour prendre en charge une base de données SQL Server complète. Aucun frais supplémentaire n’est facturé pour SQL Server Compact, car vous pouvez déployer le moteur de base de données lui-même dans le cadre de votre application web.
Toutefois, vous devez également être conscient de ses limitations. SQL Server Compact ne prend pas en charge les procédures stockées, les déclencheurs, les vues ou la réplication. (Pour obtenir la liste complète des fonctionnalités SQL Server qui ne sont pas prises en charge par SQL Server Compact, consultez Différences entre les SQL Server Compact et les SQL Server.) En outre, certains des outils que vous pouvez utiliser pour manipuler des schémas et des données dans des bases de données SQL Server Express et SQL Server ne fonctionnent pas avec SQL Server Compact. Par exemple, vous ne pouvez pas utiliser SQL Server Management Studio ou SQL Server Data Tools dans Visual Studio avec SQL Server Compact bases de données. Vous disposez d’autres options pour utiliser des bases de données SQL Server Compact :
- Vous pouvez utiliser Server Explorer dans Visual Studio, qui offre des fonctionnalités de manipulation de base de données limitées pour SQL Server Compact.
- Vous pouvez utiliser la fonctionnalité de manipulation de base de données de WebMatrix, qui a plus de fonctionnalités que server Explorer.
- Vous pouvez utiliser des outils tiers ou open source relativement complets, tels que la boîte à outils SQL Server Compact et l’utilitaire de script de schéma et de données SQL Compact.
- Vous pouvez écrire et exécuter vos propres scripts DDL (langage de définition de données) pour manipuler le schéma de base de données.
Vous pouvez commencer par SQL Server Compact, puis effectuer une mise à niveau ultérieurement à mesure que vos besoins évoluent. Les didacticiels ultérieurs de cette série vous montrent comment migrer de SQL Server Compact vers SQL Server Express et vers SQL Server. Toutefois, si vous créez une application et que vous prévoyez d’avoir besoin de SQL Server dans un avenir proche, il est probablement préférable de commencer par SQL Server ou SQL Server Express.
Configuration du moteur de base de données SQL Server Compact pour le déploiement
Le logiciel requis pour l’accès aux données dans l’application Contoso University a été ajouté en installant les packages NuGet suivants :
- SqlServerCompact
- System.Web.Providers (ASP.NET fournisseurs universels)
- EntityFramework
- EntityFramework.SqlServerCompact
Les liens pointent vers les versions actuelles de ces packages, qui peuvent être plus récents que ce qui est installé dans le projet de démarrage que vous avez téléchargé pour ce tutoriel. Pour le déploiement sur un fournisseur d’hébergement, assurez-vous d’utiliser Entity Framework 5.0 ou version ultérieure. Les versions antérieures de Migrations Code First nécessitent une confiance totale, et chez de nombreux fournisseurs d’hébergement, votre application s’exécutera en confiance moyenne. Pour plus d’informations sur l’approbation moyenne, consultez le tutoriel Déploiement sur IIS en tant qu’environnement de test .
L’installation du package NuGet prend généralement en charge tout ce dont vous avez besoin pour déployer ce logiciel avec l’application. Dans certains cas, cela implique des tâches telles que la modification du fichier Web.config et l’ajout de scripts PowerShell qui s’exécutent chaque fois que vous générez la solution. Si vous souhaitez ajouter la prise en charge de l’une de ces fonctionnalités (telles que SQL Server Compact et Entity Framework) sans utiliser NuGet, assurez-vous que vous savez ce que fait l’installation du package NuGet afin de pouvoir effectuer le même travail manuellement.
Il existe une exception dans laquelle NuGet ne prend pas en charge tout ce que vous avez à faire pour garantir un déploiement réussi. Le package NuGet SqlServerCompact ajoute un script post-build à votre projet qui copie les assemblys natifs dans les sous-dossiers x86 et amd64 sous le dossier de la corbeille du projet, mais le script n’inclut pas ces dossiers dans le projet. Par conséquent, Web Deploy ne les copiera pas sur le site web de destination, sauf si vous les incluez manuellement dans le projet. (Ce comportement résulte de la configuration de déploiement par défaut ; une autre option, que vous n’utiliserez pas dans ces didacticiels, consiste à modifier le paramètre qui contrôle ce comportement. Le paramètre que vous pouvez modifier est Uniquement les fichiers nécessaires pour exécuter l’application sous Éléments à déployer sous l’onglet Package/Publier web de la fenêtre Propriétés du projet . La modification de ce paramètre n’est généralement pas recommandée, car elle peut entraîner le déploiement de beaucoup plus de fichiers dans l’environnement de production que nécessaire. Pour plus d’informations sur les alternatives, consultez le tutoriel Configuration des propriétés du projet .)
Générez le projet, puis dans Explorateur de solutions cliquez sur Afficher tous les fichiers si vous ne l’avez pas déjà fait. Vous devrez peut-être également cliquer sur Actualiser.
Développez le dossier bin pour afficher les dossiers amd64 et x86 , puis sélectionnez ces dossiers, cliquez avec le bouton droit, puis sélectionnez Inclure dans le projet.
Les icônes de dossier changent pour indiquer que le dossier a été inclus dans le projet.
Configuration de Migrations Code First pour le déploiement d’une base de données d’application
Lorsque vous déployez une base de données d’application, vous ne déployez généralement pas simplement votre base de données de développement avec toutes les données qu’elle contient en production, car la plupart des données qu’elle contient sont probablement uniquement à des fins de test. Par exemple, les noms des étudiants dans une base de données de test sont fictifs. D’un autre côté, vous ne pouvez souvent pas déployer uniquement la structure de base de données sans aucune donnée. Certaines des données de votre base de données de test peuvent être des données réelles et doivent être présentes lorsque les utilisateurs commencent à utiliser l’application. Par exemple, votre base de données peut avoir une table qui contient des valeurs de qualité valides ou des noms de service réels.
Pour simuler ce scénario courant, vous allez configurer une méthode seed Migrations Code First qui insère dans la base de données uniquement les données que vous souhaitez trouver en production. Cette méthode Seed n’insère pas de données de test, car elle s’exécutera en production après que Code First a créé la base de données en production.
Dans les versions antérieures de Code First avant la publication de Migrations, il était courant que les méthodes Seed insèrent également des données de test, car à chaque changement de modèle pendant le développement, la base de données devait être complètement supprimée et recréée à partir de zéro. Avec Migrations Code First, les données de test sont conservées après les modifications de la base de données. Il n’est donc pas nécessaire d’inclure des données de test dans la méthode Seed. Le projet que vous avez téléchargé utilise la méthode pré-Migrations d’inclusion de toutes les données dans la méthode Seed d’une classe d’initialiseur. Dans ce tutoriel, vous allez désactiver la classe d’initialiseur et activer migrations. Ensuite, vous allez mettre à jour la méthode Seed dans la classe de configuration Migrations afin qu’elle insère uniquement les données que vous souhaitez insérer en production.
Le diagramme suivant illustre le schéma de la base de données d’application :
Pour ces tutoriels, vous allez supposer que les Student
tables et Enrollment
doivent être vides lors du premier déploiement du site. Les autres tables contiennent des données qui doivent être préchargées lorsque l’application est mise en service.
Étant donné que vous allez utiliser Migrations Code First, vous n’avez plus besoin d’utiliser l’initialiseur DropCreateDatabaseIfModelChanges Code First. Le code de cet initialiseur se trouve dans le fichier SchoolInitializer.cs du projet ContosoUniversity.DAL. Un paramètre dans l’élément appSettings du fichier Web.config entraîne l’exécution de cet initialiseur chaque fois que l’application tente d’accéder à la base de données pour la première fois :
<appSettings>
<add key="Environment" value="Dev" />
<add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>
Ouvrez le fichier Web.config application et supprimez l’élément qui spécifie la classe d’initialiseur Code First de l’élément appSettings. L’élément appSettings ressemble maintenant à ceci :
<appSettings>
<add key="Environment" value="Dev" />
</appSettings>
Notes
Une autre façon de spécifier une classe d’initialiseur consiste à appeler Database.SetInitializer
la Application_Start
méthode dans le fichier Global.asax . Si vous activez migrations dans un projet qui utilise cette méthode pour spécifier l’initialiseur, supprimez cette ligne de code.
Ensuite, activez Migrations Code First.
La première étape consiste à vérifier que le projet ContosoUniversity est défini comme projet de démarrage. Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet ContosoUniversity et sélectionnez Définir comme projet de démarrage. Migrations Code First recherchez la chaîne de connexion de base de données dans le projet de démarrage.
Dans le menu Outils , cliquez sur Gestionnaire de package NuGet , puis sur Console du Gestionnaire de package.
En haut de la fenêtre Console du Gestionnaire de package, sélectionnez ContosoUniversity.DAL comme projet par défaut, puis, à l’invite PM>
, entrez « enable-migrations ».
Cette commande crée un fichier Configuration.cs dans un nouveau dossier Migrations du projet ContosoUniversity.DAL.
Vous avez sélectionné le projet DAL, car la commande « enable-migrations » doit être exécutée dans le projet qui contient la classe de contexte Code First. Lorsque cette classe se trouve dans un projet de bibliothèque de classes, Migrations Code First recherche la chaîne de connexion de base de données dans le projet de démarrage pour la solution. Dans la solution ContosoUniversity, le projet web a été défini comme projet de démarrage. (Si vous ne souhaitez pas désigner le projet qui a la chaîne de connexion comme projet de démarrage dans Visual Studio, vous pouvez spécifier le projet de démarrage dans la commande PowerShell. Pour afficher la syntaxe de la commande enable-migrations, vous pouvez entrer la commande « get-help enable-migrations ».
Ouvrez le fichier Configuration.cs et remplacez les commentaires dans la Seed
méthode par le code suivant :
var instructors = new List<Instructor>
{
new Instructor { FirstMidName = "Kim", LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
new Instructor { FirstMidName = "Fadi", LastName = "Fakhouri", HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
new Instructor { FirstMidName = "Roger", LastName = "Harui", HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
new Instructor { FirstMidName = "Candace", LastName = "Kapoor", HireDate = DateTime.Parse("2001-01-15") },
new Instructor { FirstMidName = "Roger", LastName = "Zheng", HireDate = DateTime.Parse("2004-02-12") }
};
instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
context.SaveChanges();
var departments = new List<Department>
{
new Department { Name = "English", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
new Department { Name = "Economics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
};
departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
context.SaveChanges();
var courses = new List<Course>
{
new Course { CourseID = 1050, Title = "Chemistry", Credits = 3, DepartmentID = 3, Instructors = new List<Instructor>() },
new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() },
new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() },
new Course { CourseID = 1045, Title = "Calculus", Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() },
new Course { CourseID = 3141, Title = "Trigonometry", Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() },
new Course { CourseID = 2021, Title = "Composition", Credits = 3, DepartmentID = 1, Instructors = new List<Instructor>() },
new Course { CourseID = 2042, Title = "Literature", Credits = 4, DepartmentID = 1, Instructors = new List<Instructor>() }
};
courses.ForEach(s => context.Courses.AddOrUpdate(s));
context.SaveChanges();
courses[0].Instructors.Add(instructors[0]);
courses[0].Instructors.Add(instructors[1]);
courses[1].Instructors.Add(instructors[2]);
courses[2].Instructors.Add(instructors[2]);
courses[3].Instructors.Add(instructors[3]);
courses[4].Instructors.Add(instructors[3]);
courses[5].Instructors.Add(instructors[3]);
courses[6].Instructors.Add(instructors[3]);
context.SaveChanges();
Références à List
avoir des lignes rouges en dessous, car vous n’avez pas encore d’instruction using
pour son espace de noms. Cliquez avec le bouton droit sur l’une des instances de List
, cliquez sur Résoudre, puis cliquez sur System.Collections.Generic.
Cette sélection de menu ajoute le code suivant aux using
instructions situées en haut du fichier.
using System.Collections.Generic;
Notes
L’ajout de code à la Seed
méthode est l’une des nombreuses façons d’insérer des données fixes dans la base de données. Une alternative consiste à ajouter du Up
code aux méthodes et Down
de chaque classe de migration. Les Up
méthodes et Down
contiennent du code qui implémente les modifications de base de données. Vous verrez des exemples d’entre eux dans le tutoriel Déploiement d’une mise à jour de base de données .
Vous pouvez également écrire du code qui exécute des instructions SQL à l’aide de la Sql
méthode . Par exemple, si vous ajoutiez une colonne Budget à la table Department et que vous souhaitiez initialiser tous les budgets du service à 1 000,00 $ dans le cadre d’une migration, vous pouvez ajouter la ligne de code suivante à la Up
méthode pour cette migration :
Sql("UPDATE Department SET Budget = 1000");
Cet exemple présenté pour ce didacticiel utilise la AddOrUpdate
méthode de la Seed
méthode de la classe Migrations Code FirstConfiguration
. Migrations Code First appelle la Seed
méthode après chaque migration, et cette méthode met à jour les lignes qui ont déjà été insérées ou les insère si elles n’existent pas encore. La AddOrUpdate
méthode n’est peut-être pas le meilleur choix pour votre scénario. Pour plus d’informations, consultez Prendre soin de la méthode AddOrUpdate EF 4.3 sur le blog de Julie Lerman.
Appuyez sur CTRL-MAJ-B pour générer le projet.
L’étape suivante consiste à créer une DbMigration
classe pour la migration initiale. Vous souhaitez que cette migration crée une base de données. Vous devez donc supprimer la base de données qui existe déjà. SQL Server Compact bases de données sont contenues dans des fichiers .sdf dans le dossier App_Data. Dans Explorateur de solutions, développez App_Data dans le projet ContosoUniversity pour afficher les deux bases de données SQL Server Compact, qui sont représentées par des fichiers .sdf.
Cliquez avec le bouton droit sur le fichier School.sdf , puis cliquez sur Supprimer.
Dans la fenêtre Console du Gestionnaire de package, entrez la commande « add-migration Initial » pour créer la migration initiale et nommez-la « Initial ».
Migrations Code First crée un autre fichier de classe dans le dossier Migrations, et cette classe contient le code qui crée le schéma de base de données.
Dans la console du Gestionnaire de package, entrez la commande « update-database » pour créer la base de données et exécuter la méthode Seed .
(Si vous recevez une erreur indiquant qu’une table existe déjà et ne peut pas être créée, c’est probablement parce que vous avez exécuté l’application après la suppression de la base de données et avant l’exécution update-database
de . Dans ce cas, supprimez à nouveau le fichier School.sdf et réessayez la update-database
commande.)
Exécutez l’application. À présent, la page Étudiants est vide, mais la page Instructeurs contient des instructeurs. C’est ce que vous obtiendrez en production après avoir déployé l’application.
Le projet est maintenant prêt à déployer la base de données School .
Création d’une base de données d’appartenance pour le déploiement
L’application Contoso University utilise le système d’appartenance ASP.NET et l’authentification par formulaire pour authentifier et autoriser les utilisateurs. L’une de ses pages est accessible uniquement aux administrateurs. Pour afficher cette page, exécutez l’application et sélectionnez Mettre à jour les crédits dans le menu volant sous Cours. L’application affiche la page Connexion , car seuls les administrateurs sont autorisés à utiliser la page Mettre à jour les crédits .
Connectez-vous en tant qu'« administrateur » à l’aide du mot de passe « Pas$w0rd » (notez le nombre zéro à la place de la lettre « o » dans « w0rd »). Une fois connecté, la page Mettre à jour les crédits s’affiche.
Lorsque vous déployez un site pour la première fois, il est courant d’exclure la plupart ou la totalité des comptes d’utilisateur que vous créez à des fins de test. Dans ce cas, vous allez déployer un compte d’administrateur et aucun compte d’utilisateur. Au lieu de supprimer manuellement les comptes de test, vous allez créer une base de données d’appartenance qui n’a que le seul compte d’utilisateur administrateur dont vous avez besoin en production.
Notes
La base de données d’appartenance stocke un hachage des mots de passe de compte. Pour déployer des comptes d’une machine à l’autre, vous devez vous assurer que les routines de hachage ne génèrent pas de hachages différents sur le serveur de destination de ceux de l’ordinateur source. Ils génèrent les mêmes hachages lorsque vous utilisez le Fournisseurs universels ASP.NET, tant que vous ne modifiez pas l’algorithme par défaut. L’algorithme par défaut est HMACSHA256 et est spécifié dans l’attribut de validation de l’élément machineKey dans le fichier Web.config.
La base de données d’appartenances n’est pas gérée par Migrations Code First et il n’existe aucun initialiseur automatique qui ensole la base de données avec des comptes de test (comme il en existe pour la base de données School). Par conséquent, pour conserver les données de test disponibles, vous allez effectuer une copie de la base de données de test avant d’en créer une nouvelle.
Dans Explorateur de solutions, renommez le fichier aspnet.sdf dans le dossier App_Data en aspnet-Dev.sdf. (Ne faites pas de copie, renommez-la simplement . vous allez créer une base de données dans un instant.)
Dans Explorateur de solutions, assurez-vous que le projet web (ContosoUniversity, et non ContosoUniversity.DAL) est sélectionné. Ensuite, dans le menu Projet , sélectionnez ASP.NET Configuration pour exécuter l’outil d’administration de site web (WAT).
Sélectionnez l'onglet Sécurité .
Cliquez sur Créer ou Gérer des rôles , puis ajoutez un rôle Administrateur .
Revenez à l’onglet Sécurité , cliquez sur Créer un utilisateur et ajoutez l’utilisateur « administrateur » en tant qu’administrateur. Avant de cliquer sur le bouton Créer un utilisateur dans la page Créer un utilisateur, veillez à sélectionner la zone Case activée administrateur. Le mot de passe utilisé dans ce tutoriel est « Pas$w0rd » et vous pouvez entrer n’importe quelle adresse e-mail.
Fermez le navigateur. Dans Explorateur de solutions, cliquez sur le bouton Actualiser pour afficher le nouveau fichier aspnet.sdf.
Cliquez avec le bouton droit sur aspnet.sdf et sélectionnez Inclure dans le projet.
Distinction entre le développement et les bases de données de production
Dans cette section, vous allez renommer les bases de données afin que les versions de développement soient School-Dev.sdf et aspnet-Dev.sdf et que les versions de production soient School-Prod.sdf et aspnet-Prod.sdf. Cela n’est pas nécessaire, mais cela vous évitera de confondre les versions de test et de production des bases de données.
Dans Explorateur de solutions, cliquez sur Actualiser et développez le dossier App_Data pour afficher la base de données scolaire que vous avez créée précédemment ; cliquez dessus avec le bouton droit et sélectionnez Inclure dans le projet.
Renommez aspnet.sdf en aspnet-Prod.sdf.
Renommez School.sdfen School-Dev.sdf.
Lorsque vous exécutez l’application dans Visual Studio, vous ne souhaitez pas utiliser les versions -Prod des fichiers de base de données, mais utiliser les versions -Dev . Par conséquent, vous devez modifier les chaînes de connexion dans le fichier Web.config afin qu’elles pointent vers les versions -Dev des bases de données. (Vous n’avez pas créé de fichier School-Prod.sdf, mais c’est ok, car Code First crée cette base de données en production la première fois que vous exécutez votre application là-bas.)
Ouvrez le fichier Web.config d’application, puis recherchez les chaînes de connexion :
<configuration>
<!-- Settings -->
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=|DataDirectory|aspnet.sdf" providerName="System.Data.SqlServerCe.4.0" />
<add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
<!-- Settings -->
</configuration>
Remplacez « aspnet.sdf » par « aspnet-Dev.sdf » et remplacez « School.sdf » par « School-Dev.sdf » :
<configuration>
<!-- Settings -->
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=|DataDirectory|aspnet-Dev.sdf" providerName="System.Data.SqlServerCe.4.0" />
<add name="SchoolContext" connectionString="Data Source=|DataDirectory|School-Dev.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
<!-- Settings -->
</configuration>
Le moteur de base de données SQL Server Compact et les deux bases de données sont maintenant prêtes à être déployées. Dans le tutoriel suivant, vous configurez les transformations automatiques de fichiersWeb.config pour les paramètres qui doivent être différents dans les environnements de développement, de test et de production. (Parmi les paramètres qui doivent être modifiés figurent les chaînes de connexion, mais vous les configurerez ultérieurement lorsque vous créerez un profil de publication.)
Informations complémentaires
Pour plus d’informations sur NuGet, consultez Gérer les bibliothèques de projets avec NuGet et la documentation NuGet. Si vous ne souhaitez pas utiliser NuGet, vous devez apprendre à analyser un package NuGet pour déterminer ce qu’il fait quand il est installé. (Par exemple, il peut configurer Web.config transformations, configurer des scripts PowerShell pour qu’ils s’exécutent au moment de la génération, etc.) Pour en savoir plus sur le fonctionnement de NuGet, consultez en particulier Création et publication d’un fichier de configurationet transformations de code source.