原文

NuGet.Server是一个包,可用于使一个ASP.NET应用host一个package feed 。

  1. 使用VS创建一个新的空WEB应用,添加Nuget.Server包。
  2. 配置应用的Packages文件夹,添加包。
  3. 部署应用到服务器上。

创建部署Nuget.Server ASP.NET应用

  1. 在VS中选择File > New > Project, 搜索"ASP.NET",选择ASP.NET Web Application (.NET Framework),设置Framework为".NET Framework 4.6":

  2. 给应用起一个合适的名字,点击OK,在下面的对话框中选择空白模板,点击OK。
  3. 右键项目,选择Manage NuGet Packages
  4. 在包管理器界面中,选择Browse选项,搜索安装最新版本的Nuget.Server包。 (还可在包控制台使用Install-Pacakge Nuget.Server安装Nuget.Server包。)
  5. 安装Nuget.Server会将空白的web应用转换成了一个package source。它安装了一起其他的包,在web应用的根目录创建了Packages文件夹,修改了web.config加上了一些配置。

安装完Nuget.Server后,我们要检查下web.config文件。Nuget.Server可能没有覆盖已经存在于web.config中的元素,而是重复的创建了一个。这可能导致服务器内部错误"Internal Server Error" 。例如如果在安装Nuget.Server之前,你的web.config已经包含了<compilation debug="true" targetFramework="4.5.2" />,那么安装完Nuget.Server后,会多出一个<compilation debug="true" targetFramework="4.6" />。这时,你需要删除老版本的。

  1. 将要加入的包的 xxx.nupkg文件放到Packages文件夹下面,并将这些.nupkg文件的Build Action设为Content,将Copy to Output Directory设为Copy always

  2. 按Ctrl+F5启动网站。首页上会提供package feed URL。如果出现错误,检查web.config去除重复元素。

  3. 点击上图中的here超级链接,可查看已安装的包。
  4. The first time you run the application, NuGet.Server restructures the Packages folder to contain a folder for each package. This matches the local storage layout introduced with NuGet 3.3 to improve performance. When adding more packages, continue to follow this structure.
  5. 一旦本地部署成功了,可以将应用发布到内部或者外部的服务器上。
  6. 一旦部署到了http://<domain>,对应的package source的url为http://<domain>/nuget

配置Packages文件夹

在Nuget.Server 1.5 之后,可以在web.config中的 appSetting/packagesPath来指定package文件夹:

<appSettings>
<!-- Set the value here to specify your custom packages folder. -->
<add key="packagesPath" value="C:\MyPackages" />
</appSettings>

packagesPath可以是绝对路径也可以是相对路径。

packagesPath没有设置或者其值为空白,那么默认的包文件夹为~/Packages

添加package

一旦Nuget.Server应用运行起来了,可以使用nuget push添加包。

安装完Nuget.Server,web.config会有一个appSetting/apiKey

<appSettings>
<add key="apiKey" value="" />
</appSettings>

当没有apiKey或者其值为空的时候,push package到feed是禁用的。

设置apiKey并添加appSettings/requireApiKey设置其值为true

<appSettings>
<!-- Sets whether an API Key is required to push/delete packages -->
<add key="requireApiKey" value="true" /> <!-- Set a shared password (for all users) to push/delete packages -->
<add key="apiKey" value="" />
</appSettings>

可以设置requireApiKeyfalse。这样所有的人都可以push package了。

删除package

使用nuget delete命令从仓储中删除package。

可以设置web.config中的enableDelistingtrue启用delist。

[译]Nuget.Server的更多相关文章

  1. 搭建公司内部的NuGet Server

    随着公司业务慢慢的拓展,项目便会越来越来多,很多项目会依赖其他项目DLL,比如一些底层的技术框架DLL引用,还有各业务系统的也有可能会有引用的可能. 项目多,交叉引用多,如果要是有一个DLL更新,那就 ...

  2. 分析nuget源码,用nuget + nuget.server实现winform程序的自动更新

    源起 (个人理解)包管理最开始应该是从java平台下的maven开始吧,因为java的开发大多数是基于开源组件开发的,一个开源包在使用时很可能要去依赖其他的开源包,而且必须是特定的版本才可以.以往在找 ...

  3. Nuget Server 搭建

    每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 -- 代码世界中的大"包"小"包".这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手 ...

  4. nuget.server搭建及实际测试

    1.背景 由于所做项目越来越多,会积累一些公用组件,而每个项目中组件引用中如果组件有更新或者新增为了方便需要一个专门的工具进行管理,那么nuget就是不错的选择. 2.安装nuget.server 这 ...

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

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

  6. 搭建Nuget.Server push时,"Failed to process request. 'Method Not Allowed'"

    环境: windows server 2012,已经安装web dev工具. nuget.server版本2.11 输入网站地址正常访问: VS也能正常添加,nuget服务,在项目打包后上传服务器时报 ...

  7. 使用Docker 快速搭建nuget本地服务器,Hosting private nuget server using docker in seconds!

    Server #below line automatically creates the folder, mount the volumes and maps the ports. docker ru ...

  8. Nuget server on IIS6 returns 404

    Nuget server on IIS6 returns 404 when downloading package after upgrade 2011年9月2日 8:03:30 (GMT Dayli ...

  9. Nuget Server的搭建及实践之旅

    一. 背景 在做的一个项目使用的是Asp.Net MVC,由于缺少规范与约束,团队成员在使用类库各自为政,时常出现路径和版本不一致的问题.在一个同事建议下,开始尝试使用Nuget 管理项目或公司使用的 ...

随机推荐

  1. redis 从入门到遗忘

    Key操作 keys * *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符 exists key 存在返回1,不存在返回0 type key rename oldkey ne ...

  2. python基础之logging

    import logging def logger(): logger = logging.getLogger('logger')#括号里面默认是root logger.setLevel('DEBUG ...

  3. unsigned 变量名:n

    在结构体内定义位,节省空间 /* * size是字节数 * addr是打印的起始地址 */ static void printb(void * addr,size_t size){ ;i<siz ...

  4. 用css巧妙实现移动端横向滑动展示功能

    前言:记得以前处理移动端横向滑动展示都是去用js去解决的,要用js进行蛮多处理,要算li的宽度,然后还要用js设置ul盒子的宽度,又要设置最大滑动距离,最小滑动距离等等.......但是现在发现用cs ...

  5. The CLI moved into a separate package: webpack-cli.解决办法

    The CLI moved into a separate package: webpack-cli.Please install ‘webpack-cli‘ in addition to webpa ...

  6. POJ 3713 Transferring Sylla (三联通分量)

    Transferring Sylla Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3533   Accepted: 988 ...

  7. POJ 1971 Parallelogram Counting (Hash)

          Parallelogram Counting Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 6895   Acc ...

  8. IntelliJ IDEA载入JDBC驱动包

    1.下载zip格式的驱动包:https://dev.mysql.com/downloads/connector/j/ 2.解压zip,放到任意位置.其中的mysql-connector-java.ja ...

  9. GD32 ------ 使用外部中断,中断函数需要延时才能读到真正电平

    MCU:GD32F103RCT6 中断引脚没有外界上拉电阻 中断配置如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFI ...

  10. MYSQL二进制5.7.安装

    一.下载MySQL二进制软件包 下载连接:MYSQ安装包下载 官网MySQL有四个版本:GA版.DMR版.RC版.Beta版.一般生产和测试环境使用GA版(常规可用的版本,经过bug修复测试) 二.安 ...