unzip msbuild 작업을 사용하여 Nuget 패키지에서 파일을 추출합니다. 일부 DLL은 이름 (예 : "Product Name.dll") 사이에 공백이 있습니다. 파일 압축이 풀린 후 공간은 "% 20"으로 바뀝니다.MSBuild에서 Unzip 작업을 사용하여 바이너리 추출
공간을 ASCII "% 20"으로 바꾸지 않도록 MSBuild 압축 풀기 작업에서 설정할 수있는 속성이 있습니까?
그렇지 않으면, 나는 두 가지 옵션을 생각할 수 있습니다
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' –
작동하지 않았습니다. 정규식을 "% 20"에서 "% 2520"으로 바꿨고 파일 이름의 "% 20"을 공백으로 대체하지 않았습니다. – rds80