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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top