これを実際に適切に実行できるスクリプトを最終的に作成しました(powershellを使用)
私は頻繁に外注されており、新しいソフトウェア/追加ファイルをダウンロードするのは不便であるため、WSPBuilder は使用しません。これはOOTBで動作します。
function compress-directory([string]$dir, [string]$output)
{
$ddf = ".OPTION EXPLICIT
.Set CabinetNameTemplate=$output
.Set DiskDirectory1=.
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
"
$dirfullname = (get-item $dir).fullname
$ddfpath = ($env:TEMP+"\temp.ddf")
$ddf += (ls -recurse $dir | where { !$_.PSIsContainer } | select -ExpandProperty FullName | foreach { '"' + $_ + '" "' + ($_ | Split-Path -Leaf) + '"' }) -join "`r`n"
$ddf
$ddf | Out-File -Encoding UTF8 $ddfpath
makecab.exe /F $ddfpath
rm $ddfpath
rm setup.inf
rm setup.rpt
}
私が何か間違ったことをしている場合、および/またはより良い方法がある場合はお知らせください。
参考のため:
http://www.pseale.com/blog/StrongOpinionSayNoToMAKECABEXE.aspx
注: Jerry Cote による変更、編集メモを参照