Publish-Module
将指定模块从本地计算机发布到联机库。
语法
Publish-Module
-Name <String>
[-RequiredVersion <String>]
[-NuGetApiKey <String>]
[-Repository <String>]
[-Credential <PSCredential>]
[-FormatVersion <Version>]
[-ReleaseNotes <String[]>]
[-Tags <String[]>]
[-LicenseUri <Uri>]
[-IconUri <Uri>]
[-ProjectUri <Uri>]
[-Exclude <String[]>]
[-Force]
[-AllowPrerelease]
[-SkipAutomaticTags]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Publish-Module
-Path <String>
[-NuGetApiKey <String>]
[-Repository <String>]
[-Credential <PSCredential>]
[-FormatVersion <Version>]
[-ReleaseNotes <String[]>]
[-Tags <String[]>]
[-LicenseUri <Uri>]
[-IconUri <Uri>]
[-ProjectUri <Uri>]
[-Force]
[-SkipAutomaticTags]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
该 Publish-Module
cmdlet 使用 API 密钥(作为用户配置文件的一部分存储在库中)将模块发布到基于 NuGet 的联机库。 可以指定要按模块名称发布的模块,也可以指定包含模块的文件夹的路径。
按名称指定模块时, Publish-Module
请发布通过运行 Get-Module -ListAvailable <Name>
找到的第一个模块。 如果指定要发布的模块的最低版本, Publish-Module
则发布第一个模块,其版本大于或等于指定的最低版本。
发布模块需要模块的库页上显示的元数据。 所需的元数据包括模块名称、版本、说明和作者。 尽管大多数元数据是从模块清单中提取的,但某些元数据必须在参数(如 Tag、ReleaseNote、IconUri、ProjectUri 和 LicenseUri)中Publish-Module
指定,因为这些参数与基于 NuGet 的库中的字段匹配。
采用模块版本号的参数需要格式化为版本号的字符串。
- 标准版本号的格式为
x.y.z
x、y 和 z 是数字 - 预发行版版本的格式是
x.y.z-<prerelease_label>
<prerelease_label>
分配给该版本的任意字符串。
示例
示例 1:发布模块
在此示例中,MyDscModule 通过使用 API 密钥指示模块所有者的联机库帐户发布到联机库。 如果 MyDscModule 不是指定名称、版本、说明和作者的有效清单模块,则会发生错误。
Publish-Module -Name "MyDscModule" -NuGetApiKey "11e4b435-6cb4-4bf7-8611-5162ed75eb73"
示例 2:发布包含库元数据的模块
在此示例中,MyDscModule 通过使用 API 密钥指示模块所有者的库帐户发布到联机库。 提供的其他元数据显示在库中模块的网页上。 所有者为模块添加两个搜索标记,并将其关联到 Active Directory;添加了简短的发行说明。 如果 MyDscModule 不是指定名称、版本、说明和作者的有效清单模块,则会发生错误。
$parameters = @{
Name = "MyDscModule"
NuGetApiKey = "11e4b435-6cb4-4bf7-8611-5162ed75eb73"
LicenseUri = "http://contoso.com/license"
Tag = "Active Directory","DSC"
ReleaseNote = "Updated the ActiveDirectory DSC Resources to support adding users."
}
Publish-Module @parameters
参数
-AllowPrerelease
允许标记为预发行版的模块发布。
类型: | SwitchParameter |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
在运行 .Publish-Module
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权为指定的包提供程序或源发布模块的用户帐户。
类型: | PSCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Exclude
定义要从已发布模块中排除的文件。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Force
强制命令运行而不要求用户确认。
类型: | SwitchParameter |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-FormatVersion
仅接受 ValidateSet 属性指定的有效值。
有关详细信息,请参阅 ValidateSet 属性声明 和 ValidateSetAttribute。
类型: | Version |
接受的值: | 2.0 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-IconUri
指定模块图标的 URL。 指定的图标显示在模块的库网页上。
类型: | Uri |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-LicenseUri
指定要发布的模块的许可条款的 URL。
类型: | Uri |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Name
指定要发布的模块的名称。
Publish-Module
在 中 $Env:PSModulePath
搜索指定的模块名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-NuGetApiKey
指定要用于将模块发布到联机库的 API 密钥。 API 密钥是联机库中配置文件的一部分,可以在库中的用户帐户页上找到。 API 密钥特定于 NuGet 的功能。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Path
指定要发布的模块的路径。 此参数接受包含模块的文件夹的路径。 文件夹必须与模块具有相同的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-ProjectUri
指定有关此项目的网页的 URL。
类型: | Uri |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ReleaseNotes
指定一个字符串,其中包含要供此版本的模块用户使用的发行说明或注释。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Repository
指定通过运行 Register-PSRepository
注册的存储库的友好名称。 存储库必须具有 PublishLocation,这是有效的 NuGet URI。
可以通过运行 Set-PSRepository
PublishLocation 来设置 。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-RequiredVersion
指定要发布的单个模块的确切版本。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SkipAutomaticTags
删除作为标记包含的命令和资源。 跳过自动将标记添加到模块。
类型: | SwitchParameter |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Tags
将一个或多个标记添加到要发布的模块。 示例标记包括 DesiredStateConfiguration、DSC、DSCResourceKit 或 PSModule。 用逗号分隔多个标记。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 Publish-Module
运行时会发生什么情况。 命令脚本未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
输出
备注
PowerShell 包含以下与 Publish-Module
相关的别名:
- 所有平台:
pumo
Publish-Module
在 PowerShell 3.0 或更高版本的 PowerShell、Windows 7 或 Windows 2008 R2 及更高版本的 Windows 上运行。
重要
截至 2020 年 4 月,PowerShell 库不再支持传输层安全性(TLS)版本 1.0 和 1.1。 如果未使用 TLS 1.2 或更高版本,则尝试访问 PowerShell 库时会收到错误。 使用以下命令确保使用的是 TLS 1.2:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
有关详细信息,请参阅 PowerShell 博客中的 公告。
发布模块需要模块的库页上显示的元数据。 所需的元数据包括模块名称、版本、说明和作者。 大多数元数据取自模块清单,但某些元数据可以在参数中Publish-Module
指定,例如 Tag、ReleaseNote、IconUri、ProjectUri 和 LicenseUri。 有关详细信息,请参阅 影响 PowerShell 库 UI 的包清单值。