При установке EPPlus из PowerShell я получаю следующее (все команды запускаются впервые):
$PackageSource=Get-PackageSource -Name "PSGallery"
if (!$PackageSource.IsTrusted) { Set-PackageSource -Trusted -Name "PSGallery" > $null }
# NuGet PackageProvider
$PackageProvider=Get-PackageProvider -ListAvailable | Where-Object { $_.Name -eq "NuGet" }
$InstallPackageProvider=$false
if ($PackageProvider -eq $null) { $InstallPackageProvider=$true }
else {
$TargetVersion=[Microsoft.PackageManagement.Internal.Utility.Versions.FourPartVersion]::Parse("2.8.5.208")
if ($PackageProvider.Version -lt $TargetVersion) { $InstallPackageProvider=$true }
}
if ($InstallPackageProvider) { Get-PackageProvider -Name "NuGet" -ForceBootStrap > $null }
# Package Management
$PackageProvider=Get-Module -ListAvailable | Where-Object { $_.Name -eq "PackageManagement" }
$InstallPackageProvider=$false
if ($PackageProvider -eq $null) { $InstallPackageProvider=$true }
else {
$TargetVersion=[System.Version]::new(1,4,5)
if ($PackageProvider.Version -lt $TargetVersion) { $InstallPackageProvider=$true }
}
if ($InstallPackageProvider) { Install-Module -Name "PackageManagement" -MinimumVersion $TargetVersion -Force > $null }
# PowerShellGet
$PackageProvider=Get-PackageProvider -ListAvailable | Where-Object { $_.Name -eq "PowerShellGet" }
$InstallPackageProvider=$false
if ($PackageProvider -eq $null) { $InstallPackageProvider=$true }
else {
$TargetVersion=[Microsoft.PackageManagement.Internal.Utility.Versions.FourPartVersion]::Parse("2.2.1.0")
if ($PackageProvider.Version -lt $TargetVersion) { $InstallPackageProvider=$true }
}
if ($InstallPackageProvider) { Install-Module -Name "PowerShellGet" -MinimumVersion $TargetVersion -Force > $null }
$FilePath="~\Desktop"
$FileName="bat.bat"
New-Item -Path $FilePath -Name $FileName -ItemType File -Force > $null
$PackageProvider=Get-Module -ListAvailable | Where-object { ($_.Name -eq "PackageManagement") -and ($_.Version.ToString() -eq "1.0.0.1") }
if ($PackageProvider -ne $null) { Out-File -FilePath "$FilePath\$FileName" -Encoding ASCII -Append -InputObject ('rd "'+$($PackageProvider.ModuleBase)+'" /s /q') }
$PackageProvider=Get-Module -ListAvailable | Where-object { ($_.Name -eq "PowerShellGet") -and ($_.Version.ToString() -eq "1.0.0.1") }
if ($PackageProvider -ne $null) { Out-File -FilePath "$FilePath\$FileName" -Encoding ASCII -Append -InputObject ('rd "'+$($PackageProvider.ModuleBase)+'" /s /q') }
# Quit all PowerShell instances, open a command prompt as administrator and run the batch file
PS C:\Windows\system32> Get-Module -ListAvailable #(edited for brevity)
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.4.5 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource...}
Script 2.2.1 PowerShellGet {Find-Command, Find-DSCResource, Find-Module, Find-RoleCapability...}
PS C:\Windows\system32> Get-PackageProvider #(edited for brevity)
Name Version DynamicOptions
---- ------- --------------
NuGet 3.0.0.1 Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains...
PowerShellGet 2.2.1.0 PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpd...
$PackageSource=Get-PackageSource -Name "PSGallery"
if (!$PackageSource.IsTrusted) { Set-PackageSource -Trusted -Name "PSGallery" > $null }
$Repository=Get-PSRepository -Name "NuGet"
if ($Repository -eq $null) { Register-PSRepository -Name "NuGet" -SourceLocation "https://www.nuget.org/api/v2" -PackageManagementProvider "NuGet" -InstallationPolicy "Trusted" }
Install-Module -Name "EPPlus" -Repository "NuGet" -MinimumVersion "4.5.3.1"
PackageManagement\Install-Package : Dependency loop detected for package 'EPPlus'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.1\PSModule.psm1:9683 char:34
+ ... talledPackages = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Deadlock detected: (EPPlus:String) [Install-Package], Exception
+ FullyQualifiedErrorId : DependencyLoopDetected,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage
Windows 2016 Standard, Office не установлен, $ Host.Version = 5.1. 14393.3053