在 Visual Studio 中的 ASP.NET Core 中使用 LibMan

作者:Scott Addie

Visual Studio 在 ASP.NET Core 项目中内置了对 LibMan 的支持,包括:

  • 支持在生成时配置和运行 LibMan 还原操作。
  • 用于触发 LibMan 还原和清理操作的菜单项。
  • 搜索对话框,查找库并将文件添加到项目中。
  • 编辑对libman.json(LibMan 清单文件)的支持。—

查看或下载示例代码 (如何下载)

系统必备

添加库文件

可通过两种不同的方式将库文件添加到 ASP.NET Core 项目中:

  1. 使用“添加客户端库”对话框
  2. 手动配置 LibMan 清单文件条目

使用“添加客户端库”对话框

请按照下列步骤以安装客户端库:

  • 在中解决方案资源管理器,右键单击项目文件夹应在其中添加文件。 选择添加 > 客户端库 添加客户端库此时将显示对话框:

    添加客户端库对话框

  • 选择从库提供程序提供程序下拉列表。 CDNJS 是默认提供程序。

  • 类型库名称中提取文本框。 IntelliSense 提供了一系列从提供的文本的库。

  • 从智能感知列表中选择的库。 请注意,库名称作为后缀@符号和已知的所选提供程序的最新稳定版本。

  • 确定要包括的文件:

    • 选择包括所有库文件单选按钮,以都包括所有库的文件。
    • 选择选择特定的文件单选按钮,以包含库的文件的子集。 选中的单选按钮后,启用文件选择器树。 检查要下载的文件名称左侧的框。
  • 指定用于存储中的文件的项目文件夹目标位置文本框。 为建议,将每个库存储在单独的文件夹。

    建议目标位置文件夹根据从中启动对话框的位置:

    • 如果从项目根目录中启动:
      • wwwroot/lib如果,则使用wwwroot存在。
      • lib如果,则使用wwwroot不存在。
    • 如果从项目文件夹启动,则使用相应的文件夹名称。

    库名称作为后缀文件夹建议。 Razor 页面项目中安装 jQuery 时下, 表说明了文件夹的建议。

    启动位置 建议的文件夹
    项目根目录 (如果wwwroot存在) wwwroot/lib/jquery /
    项目根目录 (如果wwwroot不存在) lib/jquery /
    项目文件夹中 页/jquery /
  • 单击安装按钮以下载的文件,每个中配置libman.json

  • 审阅库管理器的源输出安装详细信息窗口。 例如:

    Restore operation started...
    Restoring libraries for project LibManSample
    Restoring library jquery@3.3.1... (LibManSample)
    wwwroot/lib/jquery/jquery.min.js written to destination (LibManSample)
    wwwroot/lib/jquery/jquery.js written to destination (LibManSample)
    wwwroot/lib/jquery/jquery.min.map written to destination (LibManSample)
    Restore operation completed
    1 libraries restored in 2.32 seconds
    

手动配置 LibMan 清单文件条目

在 Visual Studio 中的所有 LibMan 操作都基于项目根 LibMan 清单的内容 (libman.json)。 您可以手动编辑libman.json若要配置的项目的库文件。 Visual Studio 还原所有库文件一次libman.json保存。

若要打开libman.json进行编辑,存在以下选项:

  • 双击libman.json中的文件解决方案资源管理器
  • 右键单击该项目中的解决方案资源管理器,然后选择管理客户端库
  • 选择管理客户端库从 Visual Studio项目菜单。

如果libman.json文件尚不存在项目根目录中,它将使用默认项目模板内容的创建。

Visual Studio 提供了丰富 JSON 编辑支持,例如颜色设置、 格式设置、 IntelliSense 和架构验证。 在找到 LibMan 清单的 JSON 架构 https://json.schemastore.org/libman

使用以下清单文件,LibMan 检索每中定义的配置文件libraries属性。 中定义的对象文字说明libraries后面:

  • 一个子集jQuery版本 3.3.1 检索从 CDNJS 提供程序。 在中定义的子集files属性—jquery.min.js只需要 jquery.js,以及jquery.min.map 将文件放置在项目的wwwroot/lib/jquery文件夹。
  • 整个Bootstrap检索并放入版本 4.1.3 wwwroot/lib/bootstrap文件夹。 对象文字provider属性重写defaultProvider属性值。 LibMan 从 unpkg 提供程序中检索启动文件。
  • 一个子集lodash 等监管主体在组织内已批准。 Lodash.jslodash.min.js从本地文件系统中检索文件c:\temp\lodash 等\ 将文件复制到项目的lodash 等wwwroot/lib/ 文件夹。
{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "jquery@3.3.1",
      "files": [
        "jquery.min.js",
        "jquery.js",
        "jquery.min.map"
      ],
      "destination": "wwwroot/lib/jquery/"
    },
    {
      "provider": "unpkg",
      "library": "bootstrap@4.1.3",
      "destination": "wwwroot/lib/bootstrap/"
    },
    {
      "provider": "filesystem",
      "library": "C:\\temp\\lodash\\",
      "files": [
        "lodash.js",
        "lodash.min.js"
      ],
      "destination": "wwwroot/lib/lodash/"
    }
  ]
}

备注

LibMan 仅支持每个提供程序从每个库的一个版本。 Libman.json文件未通过架构验证,如果它包含与给定的提供程序库同名的两个库。

库将文件还原

若要还原从 Visual Studio 中的库文件,必须有一个有效libman.json项目根目录中的文件。 还原的文件放置在项目中指定每个库的位置。

可以通过两种方式的 ASP.NET Core 项目中还原库文件:

  1. 在生成过程中还原文件
  2. 手动还原文件

在生成过程中还原文件

LibMan 可以作为生成过程的一部分还原的已定义的库文件。 默认情况下还原上生成禁用行为。

若要启用和测试还原上生成行为:

  • 右键单击libman.json解决方案资源管理器,然后选择启用还原客户端上的库生成从上下文菜单。

  • 单击按钮当系统提示安装 NuGet 包。 Microsoft.Web.LibraryManager.Build NuGet 包添加到项目:

    <PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="1.0.113" />
    
  • 生成项目,以确认 LibMan 文件还原发生。 Microsoft.Web.LibraryManager.Build包注入项目的生成操作期间运行 LibMan 的 MSBuild 目标。

  • 审阅构建的源输出LibMan 活动日志窗口:

    1>------ Build started: Project: LibManSample, Configuration: Debug Any CPU ------
    1>
    1>Restore operation started...
    1>Restoring library jquery@3.3.1...
    1>Restoring library bootstrap@4.1.3...
    1>
    1>2 libraries restored in 10.66 seconds
    1>LibManSample -> C:\LibManSample\bin\Debug\netcoreapp2.1\LibManSample.dll
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    

启用还原上生成行为后, libman.json上下文菜单将显示禁用还原客户端上的库生成选项。 选择此选项删除Microsoft.Web.LibraryManager.Build包从项目文件的引用。 因此,客户端库不再存储在每个版本。

而不考虑还原上生成设置中,您可以手动还原在从任何时候libman.json上下文菜单。 有关详细信息,请参阅手动还原文件

手动还原文件

若要手动还原库文件:

  • 对于解决方案中的所有项目:
    • 右键单击解决方案的名称解决方案资源管理器
    • 选择还原客户端库选项。
  • 对于特定的项目:
    • 右键单击libman.json中的文件解决方案资源管理器
    • 选择还原客户端库选项。

尽管还原操作正在运行:

  • Visual Studio 在状态栏上的任务状态中心 (TSC) 图标进行动画处理,并将读取还原操作已启动 单击该图标可打开列出已知的后台任务的工具提示。

  • 消息将发送到状态栏并库管理器的源输出窗口。 例如:

    Restore operation started...
    Restoring libraries for project LibManSample
    Restoring library jquery@3.3.1... (LibManSample)
    wwwroot/lib/jquery/jquery.min.js written to destination (LibManSample)
    wwwroot/lib/jquery/jquery.js written to destination (LibManSample)
    wwwroot/lib/jquery/jquery.min.map written to destination (LibManSample)
    Restore operation completed
    1 libraries restored in 2.32 seconds
    

删除库文件

若要执行干净操作,这将删除以前还原在 Visual Studio 中的库文件:

  • 右键单击libman.json中的文件解决方案资源管理器
  • 选择干净的客户端库选项。

若要防止无意删除非库文件,清除操作不会删除整个目录。 而只会删除包括在上一个还原的文件。

尽管运行清理操作:

  • Visual Studio 在状态栏上的 TSC 图标进行动画处理,并将读取启动客户端库操作 单击该图标可打开列出已知的后台任务的工具提示。
  • 消息发送到状态栏并库管理器的源输出窗口。 例如:
Clean libraries operation started...
Clean libraries operation completed
2 libraries were successfully deleted in 1.91 secs

清理操作只会从项目删除文件。 在将来还原操作的更快地检索缓存中保留库文件。 若要管理存储在本地计算机的缓存中的库文件,请使用LibMan CLI

卸载库文件

若要卸载库文件:

  • 打开libman.json

  • 定位插入符号置于相应libraries对象文字。

  • 单击左边距中显示的灯泡图标,然后选择卸载<library_name > @<library_version > :

    卸载库上下文菜单选项

或者,可以手动编辑和保存 LibMan 清单 (libman.json)。 还原操作运行时保存该文件。 不能再中定义的库文件libman.json从项目中删除。

更新库版本

若要检查有更新的库版本:

  • 打开libman.json
  • 定位插入符号置于相应libraries对象文字。
  • 单击灯泡图标显示在左边距中。 将鼠标悬停检查是否有更新

LibMan 检查安装的版本比新的库版本。 会出现以下结果:

  • 一个找不到更新如果已安装最新版本,则会显示消息。

  • 最新稳定版本是显示如果还没有安装。

    检查更新上下文菜单选项

  • 如果现已安装的版本比新预发布版本,会显示预发行版。

若要降级到较旧的库版本,手动编辑libman.json文件。 保存文件时,LibMan还原操作:

  • 从以前的版本中移除冗余的文件。
  • 新版本中添加新的和更新文件。

其他资源

上一篇:将 LibMan CLI 与 ASP.NET Core

下一篇:在 ASP.NET Core中使用 Grunt

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程