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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

最新文章

  1. 模板插件aTpl
  2. NServiceBus教程-持久化
  3. AFNetworking上传文件
  4. centos 安装vnc服务
  5. Python 调用shell
  6. 老李分享:pep8 python代码规范
  7. jQuery&amp;Ajax应用
  8. Django目录
  9. Android游戏引擎总汇 原文出处:http://software.intel.com/en-us/blogs/2012/03/13/game-engines-for-android?page=1
  10. 搭建mxnet-gpu docker的pyhon remote kernel
  11. SqlServer索引碎片
  12. urllib2.Request 添加浏览器简单反爬 结合BeautifulSoup解析标签
  13. 不同版本的tomcat下载路径
  14. JavaScript之DOM操作(二)
  15. python使用SMTP发送qq/sina邮件
  16. 客户端与服务器端同步Evernote
  17. 聊聊flink的CsvTableSource
  18. mysql Access denied for user root@localhost错误解决方法总结
  19. acle联机日志文件的维护
  20. requirejs源码分析: requirejs 方法&ndash;2. context.require(deps, callback, errback);

热门文章

  1. 多线程10-SemaphoreSlim
  2. SQL Server增量备份数据[转]
  3. Java中 Json的使用
  4. 用命令行远程导出MySQL数据
  5. asp.net Base64加解密
  6. go中指针类型的用法小结
  7. js中基本数据类型与引用数据类型的本质区别
  8. kali优化配置(3)--工具箱
  9. Xshell设置密钥登录确保Linux
  10. Ubuntu apt-get install E: 无法定位软件包Ubuntu apt-get install E: 无法定位软件包