ylbtech-NuGet-Doc:NuGet.Server
1.返回顶部
1、

NuGet.Server

  • 2018/03/13

NuGet.Server 是由 .NET Foundation 提供的包,其创建的 ASP.NET 应用程序可在运行 IIS 的任何服务器上托管包源。 简而言之,NuGet.Server 通过 HTTP(尤其是 OData)在服务器上提供文件夹。 其设置方法十分简单,最适用于简单的方案。

  1. 在 Visual Studio 中创建空的 ASP.NET Web 应用程序并向其添加 NuGet.Server 包。
  2. 配置应用程序中的 Packages 文件夹并添加包。
  3. 将应用程序部署到适合的客户端。

以下各节使用 C# 详细演练此过程。

如果对 NuGet.Server 有进一步的疑问,请在 https://github.com/nuget/NuGetGallery/issues 上创建问题。

使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序

  1. 在 Visual Studio 中,选择“文件”>“新建”>“项目”,搜索“ASP.NET”,选择适用于 C# 的“ASP.NET Web 应用程序(.NET Framework)”模板,然后将“Framework”设置为“.NET Framework 4.6” :

  2. 为应用程序提供除 NuGet.Server 之外的合适名称,选择“确定”,在接下来出现的对话框中选择“空”模板,然后选择“确定” 。

  3. 右键单击项目,选择“管理 NuGet 包” 。

  4. 如果面向 .NET Framework 4.6,请在“包管理器 UI”中,选择“浏览器”选项卡,然后搜索并安装 NuGet.Server 包的最新版本 。 (也可以使用 Install-Package NuGet.Server 从包管理器控制台安装。)如果出现提示,请接受此许可条款。

  5. 安装 NuGet.Server 会将空 Web 应用程序转换成包源。 此操作会安装各种其他包,在应用程序中创建 Packages 文件夹,并修改 web.config 以包括其他设置(请参阅该文件中的注释部分以获取详细信息)。

    重要

    在 NuGet.Server 包完成对该文件的修改后,仔细检查 web.config。 NuGet.Server 可能不会覆盖现有元素,而会创建重复元素。 稍后尝试运行该项目时,这些重复项会导致“内部服务器错误”。 例如,如果 web.config 在安装 NuGet.Server 之前包含 <compilation debug="true" targetFramework="4.5.2" />,则该包不会覆盖它,而是会插入另一个 <compilation debug="true" targetFramework="4.6" />。 在这种情况下,请删除具有较旧框架版本的元素。

  6. 要在向服务器发布应用程序时在源中提供包,请将每个 .nupkg 文件添加到 Visual Studio 中的 Packages 文件夹,然后将每个文件的“生成操作”设置为“内容”,将“复制到输出目录”设置为“始终复制” :

  7. 在 Visual Studio 本地运行网站(使用“调试”>“开始执行(不调试)”或 Ctrl+F5) 。 主页提供包源 URL,如下所示。 如果发现错误,请参阅前面的步骤 5 仔细检查 web.config 是否有重复元素。

  8. 单击上述框选区域中的“此处”可查看 OData 包源 。

  9. 首次运行应用程序时,NuGet.Server 会重新构建 Packages 文件夹,以包含每个包的文件夹。这符合 NuGet 3.3 中引入的用于提高性能的本地存储布局。 添加更多包时,请继续遵照此结构。

  10. 测试本地部署后,请根据需要将应用程序部署到任何其他内部或外部网站。

  11. 部署到 http://<domain> 后,用于包源的 URL 将为 http://<domain>/nuget

配置包文件夹

对于 NuGet.Server 1.5 和更高版本,可使用 web.config 中的 appSetting/packagesPath 值更具体地配置包文件夹:

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

packagesPath 可以是绝对或虚拟路径。

省略 packagesPath 或将其留空时,包文件夹是默认的 ~/Packages

以外部方式向源添加包

NuGet.Server 站点运行后,就可以使用 nuget push 添加包,前提是在 web.config 中设置了 API 密钥值。

安装 NuGet.Server 包后,web.config 包含一个空 appSetting/apiKey 值:

XML复制
<appSettings>
<add key="apiKey" value="" />
</appSettings>

省略 apiKey 或将其留空时,会禁用向源推送包的功能。

要启用此功能,请设置 apiKey 的值(理想情况下为强密码),并添加值为 true 名为 appSettings/requireApiKey 的密钥:

XML复制
<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>

如果服务器已受保护或不需要其他 API 密钥(例如,在本地团队网络上使用专用服务器时),可将 requireApiKey 设置为 false。 然后,有权访问服务器的所有用户均可推送包。

从源中删除包

使用 NuGet.Server 时,nuget delete 命令会从存储库中删除一个包,但前提是包含 API 密钥和注释。

如果想要改变行为以从列表中删除包(将其保留为可用于包还原),请将 web.config 中的 enableDelisting 键更改为 true。

NuGet.Server 支持

有关使用 NuGet.Server 的其他帮助,请在 https://github.com/nuget/NuGetGallery/issues 上创建问题。

2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

NuGet-Doc:NuGet.Server的更多相关文章

  1. vs2012 Nuget错误:“未能解析此远程名称api.nuget.org”

    今天在使用vs2012的Nuget功能向新建MVC项目中添加bootstrap时出现一个错误:“未能解析此远程名称api.nuget.org”: 网上查阅资料得知:nuget.org使用的godadd ...

  2. 杂项:Nuget

    ylbtech-杂项:Nuget Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nug ...

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

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

  4. Nuget-Doc:Nuget 简介

    ylbtech-Nuget-Doc:Nuget 简介 1.返回顶部 1. NuGet 简介 2019/05/24 适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以创建.共享和 ...

  5. Nuget-Doc:NuGet 介绍

    ylbtech-Nuget-Doc:NuGet 介绍 NuGet 是适用于 .NET 的包管理器. 它使开发人员能够创建.共享和使用有用的 .NET 库. NuGet 客户端工具可生成这些库并将其作为 ...

  6. 探究:nuget工具对不再使用的dll文件的处理策略

    背景介绍 nuget是.net平台有效的包管理工具,相信每个C#开发者对它都不陌生. 本文我们来探究一下nuget对不再使用的dll文件的处理策略,分为如下2个场景: 场景A:包A1.0原来包含New ...

  7. 搭建Nuget服务器(Nuget私服)

    一.前言 对公司或者对个人来说,经过一段时间的沉淀之后,都会有一些框架或者模块,为了对这些框架或者模块进行更好的管理和维护,也为了方便后面的开发或者其他同事,我们可以在我们本地或者内网搭建一个Nuge ...

  8. Distributed4:SQL Server 分布式数据库性能测试

    我使用三台SQL Server 2012 搭建分布式数据库,将一年的1.4亿条数据大致均匀存储在这三台Server中,每台Server 存储4个月的数据,Physical Server的配置基本相同, ...

  9. Distributed3:SQL Server 创建分布式数据库

    分布式数据库的优势是将IO分散在不同的Physical Disk上,每次查询都由多台Server的CPU,I/O共同负载,通过各节点并行处理数据来提高性能,劣势是消耗大量的网络带宽资源,管理难度大.在 ...

随机推荐

  1. spring boot 将对象转换为json返回

    Spring Boot默认使用Jackson将对象转换为json,需要配置以下依赖: compile group: 'com.fasterxml.jackson.core', name: 'jacks ...

  2. 史上最全的ORACLE基础教程

    ORACLE命令和语句挺多,全部记忆下来不现实,况且有不常用的指令.下面把大部分的指令做了记录和详细的注释.建议收藏.转发此篇文章,如果忘记可以翻出来查查.关注公众号it_learn获取更多学习资源 ...

  3. [Python3] 013 集合:你不能两次进入同一个集合

    目录 0. 集合的独白 1. 集合的创建 2. 集合的特性 (1) 概述 (2) 少废话,上例子 3. 集合的遍历 4. 集合内涵 5. 集合的内置方法 6. 可供集合使用的一些方法/函数 (1) 又 ...

  4. 什么是 Java 对象深拷贝?面试必问!

    点击上方蓝色链接,关注并"设为星标" Java干货,每天及时推送 介绍 在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝. 浅拷贝只是拷贝了源对象的地址 ...

  5. 通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)

    通过总线机制实现自动刷新客户端配置 方案示意图 利用Git服务的webhook通知功能,在每次更新配置之后,Git服务器会用POST方式调用配置中心的/actuator/bus-refresh接口,配 ...

  6. 循环结构 :while

    循环结构 :while 循环四要素: 1.初始化条件 2.循环条件 3.循环体 4.迭代条件 格式: 1.初始化条件 while(2.循环条件){ 3.循环体 4.迭代条件 } public clas ...

  7. 十二、支持向量机(Support Vector Machines)

    12.1 优化目标 参考视频: 12 - 1 - Optimization Objective (15 min).mkv 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都 ...

  8. 小白学Python(11)——pyecharts,绘制饼图 Pie

    Pie-基本示例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...

  9. js页面加载的几种方式的速度: window.onload、 $(window).load、 $(function(){})、 $(document).ready(function () {})、onload=‘asd()’

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. 从ES6重新认识JavaScript设计模式: 装饰器模式

    1 什么是装饰器模式 向一个现有的对象添加新的功能,同时又不改变其结构的设计模式被称为装饰器模式(Decorator Pattern),它是作为现有的类的一个包装(Wrapper). 可以将装饰器理解 ...