Ответ 1
Попробуйте загрузить определенную DLL:
Add-Type -Path C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.IO.Compression.FileSystem\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.FileSystem.dll
Я использую простой PowerShell script в TeamCity Builds.
Для этого требуется System.IO.Compression.FileSystem
, а у агента установлен .NET 4.5.2. Ниже представлены .NET frameworks
PSChildName Version Release Product
----------- ------- ------- -------
v2.0.50727 2.0.50727.5420
v3.0 3.0.30729.5420
Windows Communic... 3.0.4506.5420
Windows Presenta... 3.0.6920.5011
v3.5 3.5.30729.5420
Client 4.5.51209 379893 4.5.2
Full 4.5.51209 379893 4.5.2
Client 4.0.0.0
PowerShell script имеет следующую строку
[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem");
Add-Type -AssemblyName System.IO.Compression.FileSystem
Во второй строке выполнение завершится с ошибкой
Add-Type : Cannot add type. The assembly 'System.IO.Compression.FileSystem' could not be found.
At C:\BuildAgent\someFile.ps1:104 char:13
+ Add-Type <<<< -AssemblyName System.IO.Compression.FileSystem
+ CategoryInfo : ObjectNotFound: (System.IO.Compression.FileSystem:String) [Add-Type], Exception
+ FullyQualifiedErrorId : ASSEMBLY_NOT_FOUND,Microsoft.PowerShell.Commands.AddTypeCommand
Странно, но я ожидал, что с .NET 4.5.2
, PowerShell должен иметь возможность загружать сборку из GAC
Любая помощь будет оценена
Попробуйте загрузить определенную DLL:
Add-Type -Path C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.IO.Compression.FileSystem\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.FileSystem.dll
У меня была точно такая же ошибка при запуске скрипта PowerShell. Я предполагаю, что это было некоторое коллизия установленной версии .Net с версией PowerShell. В моем случае мне помогло просто обновить версию PowerShell до новейшей. Можно найти здесь:
https://www.microsoft.com/en-us/download/details.aspx?id=40855
Попробуйте добавить это вместо этого (и удалите последнюю часть) Add-Type -AssemblyName System.IO.Compression