Ich benutze die entpacken Msbuild-Aufgabe, um Dateien aus einem Nuget-Paket zu extrahieren. Einige der DLLs haben ein Leerzeichen zwischen den Namen (d. H. "Product Name.dll"). Nachdem die Dateien extrahiert wurden, wird der Speicherplatz durch "% 20" ersetzt.Verwenden von Task entpacken in MSBuild, um Binärdateien zu extrahieren
Gibt es eine Eigenschaft, die ich in der Task "Unzip MSBuild" festlegen kann, um zu verhindern, dass die Leerzeichen in den Ascii "% 20" umgewandelt werden?
Ansonsten kann ich von zwei Möglichkeiten denken:
1) im Verzeichnis Feststellung durch die Dateien Looping, die diejenigen, die „% 20“ hatten und diese Dateien stattdessen mit einem Leerzeichen umbenannt. Ich weiß, dass es eine Kopieraufgabe in Msbuild gibt, aber ich war mir nicht sicher, wie man durch die Dateien schlingt.
2) Erledigen Sie eine Zeichenfolge ersetzen Sie die Dateien, die "% 20" in den Namen und ersetzen diese durch ein Leerzeichen. Wie kann ich die Dateinamen jedoch abrufen?
Jede Hilfe wäre willkommen.
UPDATE
fand ich die Aufgabe Fileupdate und versuchte es mit dem folgenden Code:
<ItemGroup>
<SourceFiles Include="C:\test\lib\AQS\*.*" />
</ItemGroup>
<Target Name="RenameFiles">
<FileUpdate Files="@(SourceFiles)" Regex="%20" ReplacementText=" " />
</Target>
Allerdings ist es nicht, den Text "% 20" mit einem Leerzeichen ersetzen. Ich bin mir ziemlich sicher, weil ich die Regex-Eigenschaft nicht korrekt verwendet habe.
Kann jemand bitte erklären, was der Regex gleich sein sollte?
können Sie versuchen, das '%' wieder zu entgehen? => '% 2520' –
Hat nicht funktioniert. Ich habe die Regex von "% 20" bis "% 2520" ersetzt und die "% 20" im Dateinamen nicht durch ein Leerzeichen ersetzt. – rds80