about_PSResourceGet

简短说明

介绍如何使用 Microsoft.PowerShell.PSResourceGet 模块的版本 1.0.5

长说明

Microsoft.PowerShell.PSResourceGet 是完全用 C# 编写的 PowerShellGet 模块的更新版本。

此版本的 PowerShellGet 重点介绍几个关键领域:

  • 简化代码库,以便更轻松地增强和修复 bug
  • 删除 PackageManagement 模块上的依赖项,并直接使用 NuGet
  • 解决长期存在的可用性问题,这些问题将是 v2 的重大更改
  • 通过单独的兼容性模块维护写入的 v2 的现有脚本的兼容性
  • 提高搜索和安装性能

设计更改

以前版本的 PowerShellGet 具有单独的命令来处理模块和脚本。 在 Microsoft.PowerShell.PSResourceGet 中,PowerShell 库中的所有包都定义为 PSResource 对象。 这会将版本 2.x 中的 26 个 cmdlet 数量减少到版本 0.9 中的 18 个。

下表显示了 PowerShellGet v3 中可用的 cmdlet 及其 v2 等效项。

Microsoft.PowerShell.PSResourceGet PowerShellGet v2
Find-PSResource Find-Command
Find-PSResource Find-DscResource
Find-PSResource Find-Module
Find-PSResource Find-Script
n/a Find-RoleCapability
Get-InstalledPSResource Get-InstalledModule
Get-InstalledPSResource Get-InstalledScript
Get-PSResourceRepository Get-PSRepository
Get-PSScriptFileInfo 不适用
Import-PSGetRepository n/a
Install-PSResource Install-Module
Install-PSResource Install-Script
New-PSScriptFileInfo New-ScriptFileInfo
Publish-PSResource Publish-Module
Publish-PSResource Publish-Script
Register-PSResourceRepository Register-PSRepository
Save-PSResource Save-Module
Save-PSResource Save-Script
Set-PSResourceRepository Set-PSRepository
Test-PSScriptFileInfo Test-ScriptFileInfo
Uninstall-PSResource Uninstall-Module
Uninstall-PSResource Uninstall-Script
Unregister-PSResourceRepository Unregister-PSRepository
Update-PSModuleManifest Update-ModuleManifest
Update-PSResource Update-Module
Update-PSResource Update-Script
Update-PSScriptFileInfo Update-ScriptFileInfo

按 NuGet 版本范围搜索

多个 Microsoft.PowerShell.PSResourceGet cmdlet 提供了一个 Version 参数,可用于指定要搜索的版本范围。 Version 参数使用 NuGet 版本控制语法。 有关 NuGet 版本范围的详细信息,请参阅 包版本控制

PowerShellGet 支持 NuGet 版本范围文档中列出的所有非独占版本 。 用作 1.0.0.0 版本不会生成版本 1.0.0.0 及更高版本(最低非独占范围)。 相反,该值被视为所需的版本。 若要搜索最小非独占范围,请 [1.0.0.0, ] 将其用作版本范围。

按所需资源搜索

Install-PSResource cmdlet 具有 RequiredResourceRequiredResourceFile 参数,用于查找 与特定条件匹配的 PSResource 对象。 可以使用哈希表或 JSON 对象指定搜索条件。 对于 RequiredResourceFile 参数,哈希表存储在.psd1文件中,JSON 对象存储在.json文件中。

哈希表可以包含多个模块的属性。 以下示例显示了模块规范的结构:

@{
    <modulename> = @{
        version = '<version-spcification>'
        repository = '<reponame>'
        prerelease = '<boolean>'
    }
}

此示例包含三个模块的规范。 可以,模块属性是可选的。

 @{
    TestModule = @{
        version = '[0.0.1,1.3.0]'
        repository = 'PSGallery'
    }

    TestModulePrerelease = @{
        version = '[0.0.0,0.0.5]'
        repository = 'PSGallery'
        prerelease = $true
    }

    TestModule99 = @{}
}

下一个示例以 JSON 格式显示相同的规范。

{
  "TestModule": {
    "version": "[0.0.1,1.3.0)",
    "repository": "PSGallery"
  },
  "TestModulePrerelease": {
    "version": "[0.0.0,0.0.5]",
    "repository": "PSGallery",
    "prerelease": "true"
  },
  "TestModule99": {}
}

另请参阅