我可以发布私有的NuGet软件包吗?


107

我有一个专门针对我公司团队的装配体。我希望能够使用NuGet使该程序集可用于我的团队和公司中类似团队正在从事的其他项目。但是,程序集并不是我想与世界共享的真正代码。

我知道使用Maven,您可以从本地存储库创建本地存储库和源软件包。NuGet是否支持类似的功能?NuGet是否可以指定本地存储库或拥有私有软件包?

Answers:


92

是! 您可以托管自己的NuGet服务器!

最简单的方法是在服务器上创建一个共享文件夹,并将其引用为您的Nuget服务器。

您可以在以下位置找到有关如何执行此操作的更多信息:托管自己的NuGet提要


3
如果您要创建一个实际的服务器(可通过HTTP访问)来托管程序集,请在上面的链接中向下滚动至“创建远程Feed”部分。
凯文·卡利托夫斯基

6
尽管这可能是最简单的方法,但它意味着您必须与所有人共享该文件夹,任何具有访问权限的人都可以(偶然或不偶然)对其内容进行修改。更好的方法(但还是简单的方法)是使用NuGet.ServerIIS或Azure 创建并托管自己的服务器。然后,您将能够使用API​​密钥推送程序包,任何人都可以订阅Feed。这是创建您自己的NuGet服务器的简单指南。
AlexSanséau2015年

像魅力一样工作!
Andro 2015年

我有同样的问题。并找到以下内容:斯科特:hanselman.com/blog/… 也:nicolaiarocci.com/…–
迈克尔·米特玛

21

托管自己的NuGet服务器的另一种方法是使用JetBrains TeamCity作为构建服务器。此处描述安装程序。

Team City服务器充当NuGet存储库,只能/应该/应该在公司内部访问。

根据您的使用情况,有该软件的免费版本。

它具有一些不错的选项,例如能够按需发布新的NuGet版本,具有每个新的持续集成版本等。最有用的功能之一(与所有NuGet服务器实现一样)是它将保留数十个旧版本。因此,如果您有一个项目需要引用最新版本,而另一个项目需要引用较旧版本,那么一切都会正常进行。


2
没错,TeamCity与NuGet几乎没有任何关系,NuGet服务器还有其他选择(这正是他的要求)。TeamCity是一个连续集成服务器,恰好具有内置的NuGet服务器。
Jim Aho

14

查看ProGet免费版本 ; 我们正是为此目的而构建的。设置所需的时间要少得多,并提供了超出标准NuGet服务器所提供的功能之外的许多功能,例如多个提要,提要聚合以及其他存储库类型(npm,Bower等)。

如果您想为企业版付费,则还可以使用LDAP进行身份验证,并可以通过名称/许可证从连接的源中过滤源(即NuGet的官方源)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.