Puis-je publier un package NuGet privé?

107

J'ai un assemblage que j'ai réalisé qui est très spécifique à mon équipe dans mon entreprise. Je veux pouvoir utiliser NuGet pour rendre cet assemblage disponible pour d'autres projets sur lesquels mon équipe et les équipes similaires de mon entreprise travaillent. Cependant, l'assembly n'est pas vraiment du code que je souhaite partager avec le monde.

Je sais qu'avec Maven, vous pouvez créer des référentiels locaux et des packages sources à partir d'un dépôt local. NuGet prend-il en charge des fonctionnalités similaires? Existe-t-il un moyen avec NuGet de spécifier un référentiel local ou d'avoir des packages privés?

Stevebot
la source

Réponses:

92

Oui! Vous pouvez héberger votre propre serveur NuGet!

Le moyen le plus simple consiste à créer un dossier partagé sur votre serveur et à le référencer en tant que serveur Nuget.

Vous pouvez trouver plus d'informations sur la façon de procéder sur: Hébergement de vos propres flux NuGet

Glauco Vinicius
la source
3
Au lien ci-dessus, faites défiler jusqu'à la section «Création de flux distants» si vous cherchez à créer un serveur réel, accessible via HTTP, pour héberger vos assemblys.
Kevin Kalitowski
6
Bien que ce soit probablement le moyen le plus simple, cela signifie que vous devez partager le dossier avec tout le monde, et toute personne ayant accès pourrait (accidentellement ou non) tempérer son contenu. Un meilleur moyen (mais simple) est de créer votre propre serveur en utilisant NuGet.Serveret d'héberger dans IIS ou Azure. Vous pourrez ensuite pousser des packages à l'aide d'une clé API et tout le monde pourra s'abonner au flux. Voici un guide simple pour créer votre propre serveur NuGet .
Alex Sanséau
A travaillé comme un charme!
Andro
J'ai eu le même problème. et a trouvé ce qui suit: Scott: hanselman.com/blog / ... aussi: nicolaiarocci.com
Michael Mittermair
21

Une autre option pour héberger votre propre serveur NuGet consiste à utiliser JetBrains TeamCity comme serveur de build. La configuration est décrite ici .

Le serveur Team City agit comme un référentiel NuGet qui ne serait / pourrait / ne devrait être accessible qu'au sein de votre entreprise.

En fonction de votre utilisation, il existe des versions gratuites du logiciel.

Il a quelques options intéressantes telles que la possibilité de publier une nouvelle version de NuGet à la demande, avec chaque nouvelle construction d'intégration continue, etc. L'un des bits les plus utiles (comme avec toutes les implémentations de serveur NuGet) est qu'il conservera des dizaines de versions plus anciennes de vos assemblys donc si vous avez un projet qui a besoin de référencer la version la plus récente et un autre projet qui a besoin de référencer une version plus ancienne, tout fonctionnera.

Kevin Kalitowski
la source
2
Bien que vous ayez raison, TeamCity a très peu à voir avec NuGet en soi, et il existe d'autres options pour un serveur NuGet (ce qu'il demande). TeamCity est plutôt un serveur d'intégration continue qui arrive d'avoir un serveur intégré NuGet.
Jim Aho
14

Découvrez l' édition gratuite de ProGet ; nous l'avons construit exactement dans ce but. La configuration prend beaucoup moins de temps et offre de nombreuses fonctionnalités au-delà de celles offertes par le serveur NuGet standard, telles que plusieurs flux, l'agrégation de flux et des types de référentiels supplémentaires (npm, Bower, etc.)

Si vous souhaitez payer pour la version entreprise, vous avez également la possibilité d'utiliser LDAP pour l'authentification et la possibilité de filtrer les flux par nom / licence à partir des flux connectés (c'est-à-dire le flux officiel de NuGet).

Tod Hoven
la source
2

Oui, vous pouvez avoir des flux locaux. C'est extrêmement simple à installer, jetez un œil ici .

MyGet est populaire pour l'hébergement de flux privés. Ce n'est pas gratuit, mais jetez un œil à leur prix et peut-être que cela vous convient bien!

Jim Aho
la source