2016-04-20 27 views
4

私はTeamCityビルドで単純なPowerShellスクリプトを使用しています。Add-Type:タイプを追加できません。アセンブリ 'System.IO.Compression.FileSystem'が見つかりませんでした

System.IO.Compression.FileSystemが必要です。エージェントには.NET 4.5.2がインストールされています。以下は、.NETフレームワークは、PowerShellスクリプトは、2行目のライン

[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem"); 
Add-Type -AssemblyName System.IO.Compression.FileSystem 

次ました

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          

をインストールされている、実行がエラー

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

すべてのヘルプは

+1

何PowerShellのバージョンを使用していますか?さらに重要なのは、PowerShellが.NETのバージョンを使用していることですか? .NET 4を使用してこのライブラリを正常にロードする必要があるかもしれません。 – ForNeVeR

+0

.NETバージョン 'v4.0.30319'でpowershell.exe.configをオーバーライドしています。 'System.IO.Compression.FileSystem'ではGAC = trueを表示しますが、同じアセンブリをロードすることはできません –

答えて

3

を理解されるであろう代わりに、特定の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 
+0

は素晴らしいです!ここで助けてもらえますか? http://stackoverflow.com/questions/39801315/how-to-chain-commands-at-a-special-powershell-4-command-prompt –