unzip msbuildタスクを使用して、nugetパッケージからファイルを抽出しています。 DLLの中には、名前の間に空白(「Product Name.dll」)があるものがあります。ファイルが抽出された後、スペースは "%20"に置き換えられます。MSBuildでUnzipタスクを使用してバイナリを抽出する
スペースがASCII "%20"にならないように、Unzip MSBuildタスクで設定できるプロパティはありますか?
そうでなければ、私は2つのオプションを考えることができます:
1)のものは「%20」を持っていたスペースで代わりに、それらのファイルの名前を変更するディレクトリの発見内のファイルを通してループ。私はmsbuildにコピータスクがあることを知っていますが、ファイルをループする方法がわかりませんでした。
2)文字列を使用すると、名前に "%20"が含まれているファイルが置換され、スペースで置換されます。しかし、どのようにファイル名を取得するのですか?
ご協力いただければ幸いです。
UPDATE
私はFileUpdateタスクを見つけ、次のコードでそれを使用してみました:
<ItemGroup>
<SourceFiles Include="C:\test\lib\AQS\*.*" />
</ItemGroup>
<Target Name="RenameFiles">
<FileUpdate Files="@(SourceFiles)" Regex="%20" ReplacementText=" " />
</Target>
しかし、それはスペースでテキスト "%20" に代わるものではありません。 Regexプロパティを正しく使用していないので、私はそれが確かだと確信しています。
誰かが正規表現と同じものを説明してもらえますか?
あなたは '%'から再びエスケープできますか? => '%2520' –
動作しませんでした。 Regexを "%20"から "%2520"に置き換え、ファイル名の "%20"をスペースに置き換えませんでした。 – rds80