Je travaille actuellement sur une solution qui contenait initialement un projet (My.First.Project.Name
). J'ai installé Castle Windsor en exécutant:
Install-Package Castle.Windsor
Je viens d'ajouter un autre projet (My.Second.Project.Name
) à la solution et souhaitez installer Castle Windsor dans ce projet également, mais lorsque j’exécute Install-Package Castle.Windsor
encore une fois, je reçois l'erreur:
'Castle.Core 2.5.2' déjà installé
'Castle.Windsor 2.5.2' déjà installé
My.First.Project.Name a déjà une référence à 'Castle.Core 2.5.2'
My.First.Project.Name a déjà une référence à 'Castle.Windsor 2.5.2'
Ma question est donc la suivante: Comment persuader le gestionnaire de paquets NuGet d’installer le paquet dans le deuxième projet?
Il y a 3 approches :).
Dans NuGet 1.1 (La dernière version), nous avons amélioré le pipeline en Powershell afin que vous puissiez le faire:
Get-Project -All | Install-Package SomePackage
Cela installera "SomePackage" dans tous vos projets. Vous pouvez utiliser des caractères génériques pour préciser quels projets:
Get-Project Mvc* | Install-Package SomePackage
Cela utilisera une sémantique générique (dans ce cas, trouvez tous les projets commençant par mvc).
Get-Project SomeProject | Install-Package SomePackage
Cela installera SomePackage dans SomeProject et rien d’autre.
Il y a deux approches.
Comme vous l'avez déjà appris, la console du gestionnaire de packages contient un menu déroulant répertoriant les projets de votre solution.
L'autre approche consiste à utiliser l'indicateur -Project. Ce qui est bien, c’est qu’il vous donne Intellisense avec les noms de projet! Par exemple:
Install-Package SomePackage -Project MvcApplication2
La réponse est simple, d'une manière embarrassante et aveuglante.
La "Console du gestionnaire de packages" contient une liste déroulante intitulée "Projet par défaut" dans sa barre d'outils. Le projet y est remplacé par My.Second.Project.Name
permet alors Install-Package Castle.Windsor
pour installer le package dans le deuxième projet.
Dans Visual Studio 2015 (à partir de Nuget v3.1.2), la syntaxe est la suivante:
Install-Package ThePackage -ProjectName YourProjectName
Remarque: -Project Name vs -Project
Dans Visual Studio, vous pouvez accéder à Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution
. À partir de là, sélectionnez le paquet de nugets que vous voulez partager entre les projets et cliquez sur Manage
. Cela vous permettra d'ajouter un package NuGet installé spécifique à tous les autres projets souhaités.
Si vous avez juste besoin de copier des packages d'un projet existant vers le nouveau, copiez et/ou modifiez simplement le fichier packages.config dans le nouveau projet et exécutez Update-Package -reinstall -Project YourProjectName
Il est également possible de forcer une réinstallation. Avec certains problèmes, cela m'a aidé.
Update-Package Microsoft.Owin -Reinstall