MSBuild - Gravando caracteres de escape em arquivos
Pergunta
Eu tenho um cenário muito semelhante ao descrito nesta postagem.Descreve como carregar o conteúdo de um arquivo que contém propriedades e itens, garantindo que eles sejam resolvidos como parte do processo.Estou fazendo a mesma coisa, exceto gravar o conteúdo em outro arquivo de texto (geralmente arquivo .ini).
Resumindo, eu começaria importando um projeto/propertygroup que contém este texto:
; -----------
[cabeçalho]
configuração1=$(PrimeiroValor)
configuração2=$(SegundoValor)
configuração3=lista;de;valores;delimitado;por;ponto e vírgula
configuração4 = bla bla bla
; -----------
e esperamos gravá-lo em um novo arquivo .ini contendo o seguinte:
; -----------
[cabeçalho]
setting1=valor resolvido por msbuild
setting2=outro valor resolvido pelo msbuild
configuração3=lista;de;valores;delimitado;por;ponto e vírgula
configuração4 = bla bla bla
; -----------
O único problema é que alguns arquivos conterão ponto e vírgula.Posso viver sem comentários, mas eles também são usados como parte de valores, por exemplo.em listas.Este é o resultado do uso da tarefa WriteLinesToFile.Os pontos e vírgulas são tratados como caracteres de escape e resultam em novas linhas, portanto o valor de 'setting3' no exemplo acima seria dividido em 6 linhas.
Existe uma maneira de contornar isso sem implementar minha própria tarefa?
Obrigado antecipadamente pela ajuda!
Nenhuma solução correta
Outras dicas
Eu tive uma situação semelhante, mas apenas usando texto estático contendo ponto e vírgula na tarefa WriteLinesToFile.Fiz funcionar usando% 3B como caractere de escape para ponto e vírgula.
Se você conseguir que os pontos e vírgulas apareçam corretamente no valor da memória (use a tarefa Mensagem para verificar isso), talvez seja necessário substituí-los por% 3B para gravar o arquivo.