原文:http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server

NuGet 是.NET程序员熟知的给.NET项目自动配置安装library的工具,现在已经整合在了VS2010 SP1和VS2012里。但有时候,尤其在某些公司内部,因为公司防火墙,VS是没办法连接NuGet服务器的。所以我们需要自己架设一个私服。

一、网站构建

首先,确保你的机器在互联网上,并且能够访问NuGet服务器。

创建一个空的ASP.NET网站,选择Framework4(因为考虑到部署问题,很多服务器还没有装.NET4.5,所以我们只能选4)

接下来,用NuGet为这个Web Project安装“NuGet.Server”库。这也是为什么我们需要这台机器能够连接互联网的原因。

安装成功后,你的Solution会变成这样一个结构。并且不需要写任何代码或更改任何配置,它已经可以运行了。但是注意,Packages里只有一个readme.txt,这个目录是用来放NuGet包的。所以现在我们的服务器上还没有任何可供别人安装的包。

我们可以从以前的项目中找到一些NuGet包。你以前安装过的包,都会被放在项目根目录的packages文件夹里。

搜索"nupkg"拓展名,可以非常方便的把所有的包都撸出来。

然后我们要做的,只是把这些包拷贝到我们Solution的packages文件夹下:

现在,按F5运行,如果看到下面的欢迎界面,就表示网站已经构建完成了。

这里可以看见所有我们拷到packages目录下的包:

二、发布网站

这和发布任何一个ASP.NET网站的步骤完全一样。如果你已经熟悉了,可以跳过这一节。

在网站上点击右键,选择"Publish"。

因为是第一次发布,创建一个新的profile

发布方式可以自选,我比较喜欢发布到本地硬盘,再拷贝到服务器上。

为了良好的性能,请选择Release进行发布,因为这个选项会自动设置web.config里的debug标记为false。

发布成功以后,在输出窗口中可以看到success的消息。

三、部署网站

这也和部署任何一个ASP.NET网站完全一样。如果你已经熟悉,可直接跳过本节。

把刚才发布的文件拷贝到服务器上以后,在IIS里添加一个网站。

根据服务器的情况,选择一个没有被别的程序使用的端口。比如我选择的是9001

因为我们创建网站时,选的是.NET4,所以我们还要去应用程序池里改一下设置。

选择.NET4,集成模式。

然后回到网站,点击右边工具栏中的“浏览*:9001”,以验证我们的网站是否能够运行。

再次看到了欢迎界面,证明网站在服务器上架设成功了。

四、防火墙设置

如果你能够在同一网络中的其他计算机上顺利访问服务器上的nuget网站,则可跳过本节。

因为我刚才选的是9001端口,并不是默认的http端口,所以要在防火墙的入站规则中加一笔。

选择TCP,本地特定端口9001

选择“允许连接”。

根据服务器的网络环境,选择不同的访问规则。如果你只希望这个nuget在企业内网使用,请不要勾选公用。

最后给这条规则取个名字,就OK了。

现在别的计算机应该可以成功访问服务器上的nuget网站了。

五、配置Visual Studio

现在网站已经成功架设好了,接下来我们要对VS进行一些配置,让它可以使用我们的NuGet服务器。

选择Tools, Library Package Manager, Package Manager Settings.

在Package Manager, Package Sources里,添加我们自己的NuGet服务器地址。这个地址在网站的欢迎界面里有,可以直接拷出来贴这里。

完成后,我们的VS就可以从私服上安装NuGet包了。

超详细图解:自己架设NuGet服务器的更多相关文章

  1. [转]超详细图解:自己架设NuGet服务器

    本文转自:http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server 超详细图解:自己架设NuGet服务器 汪宇杰          ...

  2. 在内部架设NuGet服务器(转载)

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入)Q  Q:408365330     E-Mail:egojit@qq.com 在公司内部有 ...

  3. 在内部架设NuGet服务器

    在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便: ...

  4. 在内部架设NuGet服务器(转)

    在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便: ...

  5. Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功)

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 注意:用户不 ...

  6. PyCharm 创建指定版本的 Django (超详细图解)

    最近在学习胡阳老师(the5fire)的<Django企业级开发实战>,想要使用pycharm创建django项目时,在使用virtualenv创建虚拟环境后,在pycharm内,无论如何 ...

  7. TeamCity实战(2):NuGet服务器

    如果有在内网架设NuGet服务器的需要,比如说公司要求所有开发人员的开发机与外网隔离,但是项目开发又必须要通过NuGet获取开发包的情况. 打开选项其实很简单,但是打开之后怎么样更新开发包要复杂些了. ...

  8. SVN入门图解教程(超详细)

    SVN入门图解教程(超详细) 一.总结 一句话总结: 二.SVN入门教程 1. 什么是SVN SVN全名Subversion,即版本控制系统.SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操 ...

  9. 超详细SQL SERVER 2016跨网段和局域网发布订阅配置图解和常见问题

    原文:超详细SQL SERVER 2016跨网段和局域网发布订阅配置图解和常见问题 转载标明出处:http://blog.csdn.net/u012861467 前方高能,要有点耐心,图片较多,注意在 ...

随机推荐

  1. CRM Look Up 解决方案

    CRM 前瑞开发中关于lookup的开发工作肯定会遇到,例如选中一个客户或者联系人后自动把相关的信息映射到相关记录上,这样可以减少用户的输入工作.我们在CRM 的映射关系中可以配置相关字段的映射可以解 ...

  2. System.Data.Dbtype转换为System.Data.SqlDbType

    最近在做一些OM Mapping的准备工作,新学了一招. 如果要将System.Data.Dbtype转换为System.Data.SqlDbType,以前以为要写Switch Case语句.其实有很 ...

  3. 在Android Studio中用Gradle添加Robolectric

    我们用Robolectric测试的话需要在gradle中进行配置,国内的详细教程太过简易,而且很多是低版本下的配置方案.所以经过本人的仔细摸索,找到了现在高版本中的配置方案,主要还是参考了官网的配置教 ...

  4. Android7.0 Phone应用源码分析(二) phone来电流程分析

    接上篇博文:Android7.0 Phone应用源码分析(一) phone拨号流程分析 今天我们再来分析下Android7.0 的phone的来电流程 1.1TelephonyFramework 当有 ...

  5. 在xib中添加手势控件后运行可能会出现的错误

    如果出现错误: // -[UITapGestureRecognizer superview]: unrecognized selector sent to instance 0x8e407a0 // ...

  6. SPC.NET,为5年的开发做个结尾

    从08年到如今从事asp.net开发已五年,起初只是一个简单的喜好,想做个东西出来.于是SPC.NET的前生诞生了,直至今日. 不得不说,一个人开发一个软件是很辛苦的事情,以下是SPC.NET的一些特 ...

  7. 响应式Web设计 – 布局

    写在前面 去年上半年,我开始着手推动项目中响应式设计的落地.以官网优化需求为契机,主动去做了响应式的页面设计,也说服了产品.设计和开发的相关同事一起把它上线落实,但不幸的是,由于各种方面的原因,比如, ...

  8. Java中读取properties资源文件

    一.通过ResourceBundle来读取.properties文件 /** * 通过java.util.resourceBundle来解析properties文件. * @param String ...

  9. 工作中常用的Linux命令:目录

    工作两三年,每天都和Linux打交道,但每每使用Linux命令的时候却会像提笔忘字般不知如何使用,常常查手册或到网上找资料.此系列文章主要是为了方便自己在使用命令时随时可查阅.鄙人才疏学浅,文中若有任 ...

  10. PHP Cannot redeclare class CLassName

    可能导致Cannot redeclare class CLassName错误的原因: 1.在同一个文件中重复声明了两次同名的类: class Extend {} class Extend {} new ...