Chocolatey 不使用 PowerShell cmdlet

Chocolatey not Working with PowerShell cmdlets

所以,我兴奋起来 运行。但是,我注意到这些 cmdlet 不起作用。就像,如果尝试使用 choco 命令做任何事情;例如:choco install vlc,效果很好。但是,如果我尝试使用旧的 cmdlet; 例如:Install-Package -Name vlc -Source chocolatey, 它一直给我关于找不到巧克力的愤怒警告-core.extension.

来信是:-

WARNING: NuGet: System.InvalidOperationException: Unable to find version '1.3.5.1' of package
'chocolatey-core.extension'.
WARNING: NuGet:    at NuGet.PackageRepositoryHelper.ResolvePackage(IPackageRepository sourceRepository,
IPackageRepository localRepository, IPackageConstraintProvider constraintProvider, String packageId,
SemanticVersion version, Boolean allowPrereleaseVersions)
WARNING: NuGet:    at NuGet.PackageManager.InstallPackage(String packageId, SemanticVersion version,
Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
WARNING: NuGet:    at NuGet.Commands.InstallCommand.InstallPackage(IFileSystem fileSystem, String
packageId, SemanticVersion version)
WARNING: NuGet:    at NuGet.Program.Main(String[] args)
WARNING: NuGet: System.InvalidOperationException: Unable to find version '3.0.11' of package 'vlc'.

如果这是一个微不足道的问题,我很抱歉,但我已经尝试让它正常工作了很长一段时间,这真的让我很烦。我已经按照 chocolatey 网站上的安装程序进行操作,我已经取消注册,然后将 chocolatey 注册为包源。此外,如果我尝试更新它,它会说我已经是 运行 最新版本(包括 power shell 和 choco)。这是正常的吗?我应该忘记它吗?...不过,说真的,我做错了什么?

我也遇到过这个问题。这似乎是 NuGet 和 TLS 1.3 的问题。虽然我不确定是否需要第一组命令,但 运行 它们都解决了这个问题。

禁用 TLS 1.3

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

更改 .Net Framework 默认 TLS 版本

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32

您可能想先尝试第二组命令,如果单独执行,我会更新此答案。

Source