Как извлечь несколько строк в переменные в msbuild
Я наткнулся на следующий пост MSBuild ReadLinesFromFile весь текст в одну строку
Из этого я не смог понять, как сделать следующее.
Что мне делать, если я хочу ReadAllLines, но хочу сохранить каждую строку в отдельной переменной без точки с запятой?
<ReadLinesFromFile File="@(File)">
<Output TaskParameter="Lines" ItemName="FileContents" />
</ReadLinesFromFile>
<Line1>"What should I do here?" </Line1>
<Line2>"What should I do here?" </Line2>
1 ответ
Решение
Считайте содержимое в свойство, затем разделите это свойство и получите из него элемент. Это, конечно, требует, чтобы вы заранее знали, что в файле будет (как минимум) столько строк, сколько у вас есть свойств.
<Target Name="ReadFile">
<ReadLinesFromFile File="$(MyInputFile)">
<Output TaskParameter="Lines" PropertyName="FileContents"/>
</ReadLinesFromFile>
</Target>
<Target Name="CreateProperties" DependsOnTargets="ReadFile">
<PropertyGroup>
<Line0>$([System.String]::Copy( $(FileContents) ).Split( ';' )[ 0 ])</Line0>
<Line1>$([System.String]::Copy( $(FileContents) ).Split( ';' )[ 1 ])</Line1>
</PropertyGroup>
</Target>