发布扩展

开发扩展后,需要进行发布,并使其可供其他人测试或使用。 在本文中,我们将介绍一些发布选项以及步骤和要求,具体取决于你的受众和发布目的。

发布选项

Windows Admin Center 支持的可配置包源有三个主要选项:

  • Microsoft 公共 Windows Admin Center NuGet 源
  • 你自己的专用 NuGet 源
  • 本地或网络文件共享

发布到 Windows Admin Center 扩展源

默认情况下,Windows Admin Center 会连接到由 Microsoft Windows Admin Center 产品团队维护的 NuGet 源。 Microsoft 开发的新扩展的早期预览版可能会发布到此源,并向 Windows Admin Center 用户提供。 计划公开生成和发布扩展的外部开发人员也可以提交将扩展发布到 Windows Admin Center 源的请求。 在发布到此源之前,外部开发人员必须同意 Windows Admin Center 的扩展发布者协议扩展参与政策

发布到其他 NuGet 源

还可以创建自己的 NuGet 源,以使用设置专用源或使用 NuGet 托管服务的多种不同选项之一发布扩展。 NuGet 源必须支持 NuGet v2 API。 由于 Windows Admin Center 当前不支持源身份验证,因此需要将源配置为允许任何人进行读取访问。

发布到文件共享

若要将扩展的访问权限限制为组织或有限的一组人员,可以使用 SMB 文件共享作为扩展源。 使用文件共享托管扩展源时,应用文件和文件夹权限来管理对源的访问权限。

准备要发布的扩展

请务必阅读并考虑以下开发文章:

考虑发布为预览版

如果要发布扩展的预览版用于评估,我们建议你:

  • .nuspec 文件中将“(预览版)”追加到扩展标题的末尾
  • 解释 .nuspec 文件中扩展说明中的限制

创建扩展包

Windows Admin Center 利用 NuGet 包和源来分发和下载扩展。 若要交付包,需要生成包含插件和扩展的 NuGet 包。 单个包可以包含一个 UI 扩展和一个网关插件。 以下部分将引导你完成该过程。

生成扩展

准备好开始打包扩展后,立即在文件系统上创建新目录,打开控制台,然后将 CD 放入其中。 此目录是我们用于包含构成包的所有 nuspec 和内容目录的根目录。 在本文的其余部分,我们将此文件夹称为“NuGet Package”。

UI 扩展

若要开始收集 UI 扩展所需的全部内容的过程,请在工具上运行“gulp 生成”并确保生成成功。 此过程将所有组件打包在一个名为“bundle”的文件夹中,该文件夹位于扩展(与 src 目录在同一级别)的根目录中。 将此目录及其所有内容复制到“NuGet Package”文件夹中。

网关插件

使用生成基础结构(只需打开 Visual Studio 并选择“生成”按钮)编译和生成插件。 打开生成输出目录,复制代表插件的 DLL,并将其放入名为“package”的“NuGet Package”目录下的新文件夹中。 无需复制 FeatureInterface DLL,只需复制表示代码的 DLL。

创建 nuspec 文件

若要创建 NuGet 包,需要首先创建 .nuspec 文件。 .nuspec 文件是包含 NuGet 包元数据的 XML 清单。 此清单同时用于生成包以及为使用者提供信息。 将此文件放在“NuGet 包”文件夹的根目录中。

下面是一个示例 .nuspec 文件以及必需或建议的属性列表。 有关完整架构,请参阅 nuspec 参考。 使用所选文件名将 .nuspec 文件保存到项目的根文件夹。

重要

.nuspec 文件中的 <id> 值需要与项目的 manifest.json 文件中的 "name" 值匹配,否则发布的扩展无法在 Windows Admin Center 中成功加载。

<?xml version="1.0">
<package>
  <metadata>
    <id>contoso.project.extension</id>
    <version>1.0.0</version>
    <title>Contoso Hello Extension</title>
    <authors>Contoso</authors>
    <owners>Contoso</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <projectUrl>https://msft-sme.myget.org/feed/windows-admin-center-feed/package/nuget/contoso.sme.hello-extension</projectUrl>
    <licenseUrl>http://YourLicenseLink</licenseUrl>
    <iconUrl>http://YourLogoLink</iconUrl>
    <description>Hello World extension by Contoso</description>
    <copyright>(c) Contoso. All rights reserved.</copyright>
    <tags></tags>
  </metadata>
  <files>
    <file src="bundle\**\*.*" target="ux" />
    <file src="package\**\*.*" target="gateway" />
  </files>
</package>
属性名称 必需/建议 描述
packageType 必需 使用 WindowsAdminCenterExtension,它是为 Windows Admin Center 扩展定义的 NuGet 包类型。
ID 必需 源中唯一的包标识符。 此值需要与项目的 manifest.json 文件中的“name”值匹配。 有关指南,请参阅选择唯一的包标识符
title 发布到 Windows Admin Center 源所必需的 Windows Admin Center 扩展管理器中显示的包的友好名称。
version 必需 扩展版本。 建议使用语义版本控制(SemVer 约定),但不是必需的。
作者 必需 如果代表公司发布,请使用公司名称。
description 必需 提供扩展功能的说明。
iconUrl 发布到 Windows Admin Center 源时建议 要显示在扩展管理器中的图标的 URL。
projectUrl 发布到 Windows Admin Center 源所必需的 扩展网站的 URL。 如果没有单独的网站,请使用 NuGet 源上的包网页的 URL。
licenseUrl 发布到 Windows Admin Center 源所必需的 扩展的最终用户许可协议的 URL。
files 必需 这两个设置可设置 Windows Admin Center UI 扩展和网关插件所需的文件夹结构。

生成扩展 NuGet 包

使用已创建的 .nuspec 文件,现在需要创建可以上传并发布到 NuGet 源的 NuGet 包 .nupkg 文件。

  1. NuGet 客户端工具网站下载 nuget.exe CLI 工具。
  2. 运行 nuget.exe pack <>.nuspec file name> 以创建 .nupkg 文件。

对扩展 NuGet 包签名

扩展中包含的任何 .dll 文件都需要使用受信任的证书颁发机构 (CA) 的证书进行签名。 默认情况下,当 Windows Admin Center 在生产模式下运行时,会阻止执行未签名 .dll 文件。

我们建议对扩展 NuGet 包进行签名以确保包的完整性。

注意

如果计划支持 Windows Defender 应用程序控制的扩展,则必须对包和其中的所有文件进行签名。 详细了解使用 Windows Defender 应用程序控制进行签名的过程。

对扩展 NuGet 包进行测试

扩展包现已准备好进行测试! 将 .nupkg 文件上传到 NuGet 源或复制到文件共享。 若要从其他源或文件共享查看和下载包,需要将源配置更改为指向 NuGet 源或文件共享。 测试时,请确保在扩展管理器中正确显示属性,并且可以成功安装和卸载扩展。

将扩展发布到 Windows Admin Center 源

通过发布到 Windows Admin Center 源,可以将扩展提供给任何 Windows Admin Center 用户。 由于 Windows Admin Center SDK 仍处于预览状态,因此我们希望与你密切合作,以帮助解决开发问题,并帮助为用户提供高质量的产品和体验。

在向 Microsoft 提交扩展评审请求之前,必须向 wacextensionrequest@microsoft.com 发送电子邮件,以表达将扩展发布到公共源的意图。 我们提供扩展发布者协议和扩展参与政策的副本,以书面形式进行评审和确认。

发布扩展的初始版本前,我们建议你在发布前至少 2-3 周向 Microsoft 提交扩展评审请求。 在发布前预留 2-3 周可确保我们有足够时间进行评审并且你有足够时间对扩展进行更改(如有必要)。 你的扩展准备好发布后,你需要将它发送给我们以供评审。 如果你的扩展获得批准,我们会将其发布到源。 向 Microsoft 发送扩展包即表示你同意受扩展发布者协议和扩展参与政策的条款的约束。

之后,如果要发布扩展的更新,则需要提交另一个请求以供评审。 更新评审的周转时间通常较短,具体取决于更改范围。

向 Microsoft 提交扩展评审请求

若要提交扩展评审请求,请提供以下信息,并以电子邮件的形式发送到 wacextensionrequest@microsoft.com。 我们会在一周内回复你的电子邮件。

Windows Admin Center - 扩展评审请求信息:

  • 扩展所有者/开发人员的姓名和电子邮件地址(最多 3 个用户)。 如果要代表公司发布扩展,请提供公司电子邮件地址。
  • 公司名称(仅当代表公司发布扩展时才需要)
  • 扩展名称
  • 发布目标日期(估计)
  • 对于新的扩展提交 - 扩展说明(建议包含早期设计线框、屏幕模型或产品屏幕截图)
  • 对于扩展更新评审 - 更改的说明(UI 显著更改时包括产品屏幕截图)

提交扩展包以供审阅和发布

请确保按照前面有关创建扩展包的说明操作,正确定义 .nuspec 文件并对文件进行签名。 我们还建议你创建一个项目网站,其中包括以下内容:

  • 扩展的详细说明,包括屏幕截图或视频
  • 用于接收反馈或问题的电子邮件地址或网站功能

准备好发布扩展时,请向 wacextensionrequest@microsoft.com 发送电子邮件。 我们提供了有关如何向我们发送扩展包的说明。 收到你的包后,我们将对其进行评审。 扩展包获得批准后,我们会发布到 Windows Admin Center 源。