0

自動化コードを書いていて、dllファイルをxapファイルに追加しています。xapを抽出し(zipのように扱います)、dllを追加し、appmanifest.xmlを変更します。

ただし、フォルダをSilverlightxapファイルに戻すことはできないようです。開発者はプログラムにテストフックを追加しないため、これが唯一のオプションです。

PowerShellで、ディレクトリタイプを変換するにはどうすればよいですか?プロパティ:タイプファイルフォルダ-> XAP(ファイル)

4

1 に答える 1

3

あなたが述べたように、.xapファイルは実際には別の拡張子で偽装した単なるzipファイルです。フォルダの内容を更新したら、フォルダをファイルに圧縮してから、ファイルの名前を.xap拡張子に変更します。

次の圧縮コードは、単純なグーグルでネット上の多くの場所で見つけることができます。ここここのコードを使用しました

$folder = "C:\FolderToZip"
$zipFileName = "C:\Temp.zip"
set-content $zipFileName ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipFileName).IsReadOnly = $false

$zipFile = (new-object -com shell.application).NameSpace($zipFileName)
gci $folder | foreach-object {$zipFile.CopyHere($_.FullName); sleep -milliseconds 100}

rename-item $zipfileName "RepackagedXapFile.xap"

これをテストしたところ、PowerShellがエラーをポップアップすることがあることに気付きましたFile not found or no read permission。各コピーの間にスリープを発行することで回避できたため、競合状態である可能性があります。睡眠は一般的に眉をひそめているのは、十分な長さがわからないという事実だけにとどまらないことは知っていますが、これは実際にはテストファイルの内部パッケージ化のためであると思われるため、あまり多くはないと思います。懸念。

于 2012-05-01T09:20:43.247 に答える