ビルドプロセスでは、ComponentA-1.2.3.4.zip
などの.zipファイルが多数作成されます。ここで1.2.3.4はビルド番号です。このファイルには、フォルダ構造内に実際の成果物があるフォルダComponentA-1.2.3.4
が含まれています。私はアーティファクトを抽出してサーバーに送り、展開し、サーバー上の最上位のものの下に構造を置く必要のあるPowerShellスクリプトを作成しています。だから、この構造を仮定すると:ComponentA-1.2.3.4.zip\ComponentA-1.2.3.4\{Web,Lib,Bin}
、Web、LibとBinのフォルダを抽出する必要があります。zipファイル内のディレクトリからファイルをコピーする
は私が$zipPackage.Items()
オブジェクトを操作するが、ファイルがexisingないに関するエラーを取得しようとした
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
$destinationFolder = $shellApplication.NameSpace($destination)
$destinationFolder.CopyHere($zipPackage.Items())
現時点では、この方法を使用してファイルをコピーしています。オブジェクトは、デバッガで次のようになります。私はCannot find path 'D:\release\1.2.3.4\System.__ComObject' because it does not exist
につながるん
>>> $ZipPackage.Items()
Application : System.__ComObject
Parent : System.__ComObject
Name : ComponentA-1.2.3.4
Path : D:\Release\1.2.3.4\ComponentA-1.2.3.4.zip\ComponentA-1.2.3.4
GetLink :
GetFolder : System.__ComObject
IsLink : False
IsFolder : True
IsFileSystem : False
IsBrowsable : False
ModifyDate : 2012-02-27 17:30:34
Size : 0
Type : File Folder
何でも。
一時的な場所にファイルを展開してワンステップを歩いてもらう必要はありませんが、その方法はわかりません。
私は7zipをを呼び出してしまった - いくつかの(抽出性能が最悪だっ判明kB/sec)を使用して測定した。 – carlpett