MSBUILD-ファイルに脱出文字を書き込む
質問
説明されているシナリオと非常によく似たシナリオがあります この投稿で. 。プロパティとアイテムを含むファイルの内容をロードする方法を説明し、プロセスの一部としてそれらが解決されることを確認します。コンテンツを別のテキストファイル(通常.iniファイル)に書き留めることを除いて、私は同じことをしています。
要するに、このテキストを含むプロジェクト /プロパティグループをインポートすることから始めます。
; -----------
見出し
setting1 = $(firstValue)
setting2 = $(secondValue)
setting3 = list; of; values; delimited; by; semicolons
setting4 = bla bla bla
; -----------
&うまくいけば、以下を含む新しい.iniファイルに書き留めてください。
; -----------
見出し
setting1 = msbuildによって解決された値
setting2 = msbuildによって解決された別の値
setting3 = list; of; values; delimited; by; semicolons
setting4 = bla bla bla
; -----------
唯一の問題は、一部のファイルにセミコロンが含まれることです。私はコメントなしで生きることができますが、それらはリストの価値の一部としても使用されます。これは、Writelinestofileタスクを使用した結果です。セミコロンはエスケープキャラクターとして扱われ、新しい線になります。そのため、上記の例の「setting3」の値は6行に分割されます。
自分の仕事を実装せずにこれを回避する方法はありますか?
助けてくれてありがとう!
正しい解決策はありません
他のヒント
私は同様の状況がありましたが、Writelinestofileタスクに半丸を含む静的テキストを使用していました。私はそれをセミコロンのエスケープキャラクターとして%3Bを使用して動作させました。
セミコロンをメモリ内の値に適切に表示できる場合(メッセージタスクを使用してこれを確認してください)、それを%3Bに置き換えてファイルを書き出すだけです。