一、 背景

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

二、 搭建Nuget.Server

2.1 新建一个Web应用程序

    WebForm或MVC都行,建议新建一个空的Web应用程序,这里使用.Net Framework版本为4.6.1:

2.2 安装Nuget.Server

通过nuget包管理工具搜索nuget.sever或者使用“工具栏—工具—NuGet包管理器—程序包管理器控制台”进行安装都行,这里使用后者:

(1)访问:https://www.nuget.org/packages/NuGet.Server/ ,选择适合自己的Nuget.Server版本,我这里选择最新版本:

(2)执行命令:Install-Package NuGet.Server -Version 2.11.3。如果中间NuGet询问web.config、favicon.ico文件与项目默认的有冲突,是否覆盖,直接输入“Y”就行了。

(3)安装成功后,设置一下Web.Config里apiKey的值,默认为空,这是用来共享类库用的:

2.3 发布并部署站点到IIS

发布完成后,如果运行出现以下错误,请按照提示删除相应节点

重新运行,成功页面如下:

三、 使用手册

3.1 使用nuget.exe命令进行管理

命令很多,使用起来也没那么方便,这里介绍几个常用的命令:

命令

说明

示例

push

发布一个包到nuget.server,包名 apikey, -Source是必须的

.\nuget.exe push .\ClassLibrary1.1.2.0.nupkg samlong -Source http://localhost:56546/nuget

delete

从指定 -Source上移除一个包,必须指定版本

..\..\nuget.exe delete Nu.Common 1.0.0 samlong -Source http://localhost:56981/nuget

list

查看服务器上有那些nuget 包

.\nuget.exe list -Source http://localhost:56546/nuget

3.2 使用NuGet Package Explorer可视化管理

3.2.1 创建包

ü  打开NuGet Package Explorer

ü  选择“Create a new package(Ctrl+N)

ü  右键->Add Lib Folder,添加lib文件夹(必须有)

ü  右键添加文件或将打好的包拖进来

ü  确认无误后点击保存

3.2.2 发布包

ü  点击“File->Publish”进行发布

ü  配置并发布

3.2.3 使用示例

ü  打开项目,右键->”管理NuGet程序包”:

ü  设置程序包源:

ü  选择刚刚添加的程序包源,即可以看到自己的发布的程序包:

ü  选择刚刚发布的程序包进行安装:

参考资料

1、  手把手教你搭建nuget服务器

2、  nuget服务器搭建,以及如何发布一个Nuget包

3、  无法添加引用。包“netMarketing”试图将 GAC 中不存在的框架引用添加到“netMarketing”中

Nuget Server的搭建及实践之旅的更多相关文章

  1. 手把手教你 通过 NuGet.Server 包 搭建nuget服务器,并使用桌面工具上传 nuget 包,免命令行

    新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...

  2. 搭建公司内部的NuGet Server

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

  3. Nuget Server 搭建

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

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

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

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

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

  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 环境

    1. 官网 https://github.com/NuGet/NuGet.Server 下载最新的源代码 VS 发布到指定的目录,比如发布到我本地 D:\Workspace\DeploymentPro ...

  9. 搭建 Nuget.Server

    公司项目容器化的需要, 小编研究将net framework项目升级成net standard 2.0,但是在打包上传nupkg 后,vs 的 nuget 插件不能识别依赖项,显示 Unsupport ...

随机推荐

  1. VS环境下基于C++的单链表实现

    ------------恢复内容开始------------ #include<iostream> using namespace::std; typedef int ElemType; ...

  2. vue学习之插槽

    插槽 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 个人理解:我感觉插槽就是父组件控制插槽 ...

  3. 基于华为物联网IOT的应用开发 ---界面管理开发

    在前面随笔<基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装>介绍过IOT中应用侧SDK的封装,主要就是基于华为IOT的应用侧封装,以便在应用系统中进行调用.应用侧SDK ...

  4. generator和promise配合解决js异步地狱问题

    为何要使用generator函数和promise? js的异步地狱一直是困扰前端程序员的一个头疼的问题 比如说我要获取还有列表,一般来说会使用ajax来获取 $.ajax(...等等,function ...

  5. 通俗易懂了解Vue的计算属性

    1.前言 之前在学习vue的过程中,一直没有搞明白计算属性是个怎么回事,以及为什么要有计算属性,使用计算属性有什么好处.今天花时间翻了翻官方文档,才搞清楚其中一二,现将学习心得总结记录如下. 2.为什 ...

  6. 易初大数据 2019年11月7日 spss 王庆超

    许多统计过程也都提供描述性统计指标的输出. (2)描述(D):该过程进行一般性的统计描述.它可以输出均值.均值的标准误.方差.标准差.范围(极差).最大值.最小值.峰度和偏度. (3)探索(E):该过 ...

  7. php pdo mysql存入转义

    php pdo mysql存入转义 因为存入html都是自动转义 相当于PHP的htmlspecialchars 所以读取的时候要加htmlspecialchars_decode

  8. Docker学习-Kubernetes - 集群部署

    Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...

  9. PHP laravel+thrift+swoole打造微服务框架

    Laravel作为最受欢迎的php web框架一直广受广大互联网公司的喜爱. 笔者也参与过一些由laravel开发的项目.虽然laravel的性能广受诟病但是业界也有一些比较好的解决方案,比如堆机器, ...

  10. Python 常用模块系列(2)--time module and datatime module

    import time print (help(time)) #time帮助文档 1. time模块--三种时间表现形式: 1° 时间戳--如:time.time()  #从python创立以来,到当 ...