NuGet.Server


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中,选择"文件> ""Project",搜索"ASP.NET Web 应用程序 (.NET Framework) ",选择>的匹配模板。

    选择 .NET Framework Web 项目模板

  2. 将“框架”设置为“.NET Framework 4.6” 。

    为新项目设置目标框架

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

    选择空 Web 项目

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

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

    安装 NuGet.Server 包

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

     重要

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

  7. 使用"调试启动但不调试Visual Studio (Ctrl+F5 命令在本地运行站点) 。 主页提供包源 URL,如下所示。 如果发现错误,请仔细检查 web.config 是否有重复元素(如前文所述)。

    NuGet.Server 的应用程序的默认主页

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

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

  10. 部署到 http:// 后,用于包源的 URL 将为 http:///nuget

以外部方式向源添加包

一旦NuGet。服务器站点正在运行,只要在 中设置了 API 密钥值,就可以使用nuget推送添加包 。

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

XML
配置包文件夹

对于 NuGet.Server 1.5 和更高版本,可使用 web.config 中的 appSettings/packagesPath 值自定义包文件夹:

XML