.NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以及更新组件即可一键完成,大大提升工作效率,减少不必要的引用报错。从运维角度,可在不影响老版本的情况下发布新版本,可统一管理公司各个项目中组件版本不一和各个版本组件的使用情况,减少故障发生以并使得项目稳定运行。

nuget.org 有个指南Hosting Packages Overview 告诉你如何自己搭一个nuget Server,社区还有下面的几个相关方案都可以实现自己搭建Nuget Server:

  • Nexus: 支持NuGet, 他也是可以免费使用的,对于要同时支持Maven等的可以考虑,对于纯粹的.NET支持上有点重
  • MyGet: 这是一个Nuget云服务,不适合企业内的私有部署
  • Self-hosted feeds: 小团队使用可以,很快你就会掉到坑里,一个很简陋的NuGet服务器很难以满足各方面的需求
  • ProGet,它和Nexus一样虽然是商业软件,支持nuget、npm、docker等,但它是.NET生态应用,而且还提供了免费版本,博客园也是用ProGet,具体参看dudu的文章《用ProGet搭建内部的NuGet服务器》

下面我们就来看看如何使用ProGet搭建一个内部的NuGet服务器,由于时间的关系dudu的安装方法已经不适用了,实质上ProGet分为绿色版和安装包两个版本,绿色版就是dudu上面所说的,而简单点的是直接安装包安装,跟着向导做就可以了,下面介绍下绿色版的安装:

1、 浏览器打开http://inedo.com/proget/versions 并下载最新的4.3.1 Manual Install版

2、 解压下载文件,得到3个文件夹:ProGet-Service 、ProGet-WebApp与ProGet-DbChangeScripter

3、 参考http://inedo.com/support/documentation/proget/installation/manual ,我们使用IIS来承载,需要安装数据库和IIS 站点。

4、 在IIS中创建一个站点指向ProGet-WebApp文件夹,应用程序池配置为经典模式(Classic)。[注:如果采用集成模式(Integrated),会出现HTTP Error 403.14 - Forbidden错误]。

5、 在SQL Server中创建一个名为ProGet的数据库,然后运行ProGet-DbChangeScripter文件夹中的bmdbupdate.exe程序。出现命令行菜单,输入update(进行update操作),接着输入数据库连接字符串回车,默认true,继续回车(进行数据库初始化操作),然后会进行数据库初始化操作。

6、 在完成数据库初始化操作之后,修改一下web.config中的数据库连接字符串,然后就可以正常访问自己搭建的ProGet站点。

7、 去ProGet的官网 my.inedo.com 注册一个帐户并获取免费版的License Key,登录进入自己搭建的ProGet站点,点击“Licensing and Activation”,输入之前得到的License Key进行激活。激活后就可以正常使用ProGet

8、 进入 Manage Default Feed ,修改一下Disk Path的值,设置为存放packages文件的物理路径。

除了用于存放自己的nuget packages,ProGet还可以通过connector连接到远程的nuget.org服务器,这样可以把ProGet站点作为nuget.org的缓存服务器。

通过ProGet搭建一个内部的Nuget服务器的更多相关文章

  1. 搭建公司内部的NuGet服务器

    1.  创建NuGet项目      (注意:解决方案名称可以自定义为其他的名称)        2.   安装NuGet Server       在 “NuGetServer” 项目上,右键选择 ...

  2. 在VS中自动生成NuGet包以及搭建自己的或单位内部的NuGet服务器

    关于NuGet的介绍已经很多,可以参考下面的: NuGet学习笔记(1)--初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ NuGet学习笔记(2) ...

  3. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  4. NuGet学习笔记(3)——搭建属于自己的NuGet服务器(转)

    在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重要的一步,从零开始搭建属于自己的NuGet服务器,诚然园子里及其它很多地方已经有完全写好的Nu ...

  5. NuGet学习笔记3——搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  6. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  7. 快速搭建一个本地的FTP服务器

    快速搭建一个本地的FTP服务器   如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试. 第一步:配置IIS Web服务器 1.1 控制面板中找到"程序& ...

  8. 使用gitblit搭建一个简单的局域网服务器

    使用gitblit搭建一个简单的局域网服务器 1.使用背景 现在很多使用github管理代码,但是github需要互联网的支持,而且私有的git库需要收费.有一些项目的代码不能外泄,所以,搭建一个局域 ...

  9. 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

随机推荐

  1. XSS

    XSS的含义 XSS(Cross Site Scripting)即跨站脚本.跨站的主要内容是在脚本上. 跨站脚本 跨站脚本的跨,体现了浏览器的特性,可以跨域.所以也就给远程代码或者第三方域上的代码提供 ...

  2. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)

    系列目录 前言: 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访 ...

  4. .NET Core的日志[4]:将日志写入EventLog

    面向Windows的编程人员应该不会对Event Log感到陌生,以至于很多人提到日志,首先想到的就是EventLog.EventLog不仅仅记录了Windows系统自身针对各种事件的日志,我们的应用 ...

  5. [译]处理文本数据(scikit-learn 教程3)

    原文网址:http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html 翻译:Tacey Won ...

  6. C语言中如何判断文件是否存在

    方法一:access函数判断文件夹或者文件是否存在 函数原型: int access(const char *filename, int mode); 所属头文件:io.h filename:可以填写 ...

  7. 学习C的笔记

    [unsigned] 16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535.由于在计算机中,整数是以补码形式存放的.根据最高位的不同 ...

  8. 设计模式之工厂模式VS抽象工厂

    一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...

  9. json

    #json序列化,只能处理简单的数据类型,如:字典.列表.字符串,类和函数等数据类型过于复杂,不支持序列化import jsondef sayhi(name): print('hello,', nam ...

  10. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...