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


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

    超详细图解:自己架设NuGet服务器        


    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包了。


     
  • 相关阅读:
    【java】浅谈java内部类
    【java】java反射初探 ——“当类也学会照镜子”
    【java】关于java类和对象,你想知道的在这里!
    【javascript】谈谈HTML5: Web-Worker、canvas、indexedDB、拖拽事件
    【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
    【javascript】详解变量,值,类型和宿主对象
    【javascript】异步编年史,从“纯回调”到Promise
    [转] golang 字符串比较是否相等
    because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checkin
    desktoplayer.exe病毒及d:w7rtmasewcpsilmerged tu tsystem.cpp的解决方案
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3965760.html
Copyright © 2020-2023  润新知