Доступ к элементам, разделенным точкой с запятой, в переменной MSBuild - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть переменная, с которой я работаю, она называется $(TargetConnectionString)

Это установлено на

SomeValue = Вещи; Источник данных = MySQLServer; Интегрированная безопасность = True; Пул = False

Есть ли классный способ MSBuild получить ссылку только на часть MySQLServer из этого списка?

(я могу использовать пакетный файл для его анализа, но затем мне нужно найти способ прочитать его обратно. Поэтому я надеюсь, что есть способ сказать $(TargetConnectionString."Data Source") (или что-то подобное)

Итак, как мне получить текст MySQLServer.

1 Ответ

1 голос
/ 21 сентября 2011

следующее работает, вызывая обратно в файл проекта, используя задачу MsBuild со строкой TargetConnection в качестве набора свойств.Однако не работает с пробелами, поэтому я удалил их, надеюсь, это будет полезно для вас

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <TargetConnectionString>DataSource=MySQLServer;IntegratedSecurity=True;Pooling=False</TargetConnectionString>
  </PropertyGroup>

  <Target Name="Main">
    <MSBuild Projects="$(MSBuildProjectFullPath)" Targets="GetDataSource" Properties="$(TargetConnectionString)"/> 
  </Target>

  <Target Name="GetDataSource">
    <Message Text="$(DataSource)"/>
    <Message Text="$(IntegratedSecurity)"/>
    <Message Text="$(Pooling)"/>
  </Target>

</Project>

вывод:

> msbuild test.proj /t:Main
...
Project "test.proj" on node 0 (Main target(s)).
Project "test.proj" (1) is building "test.proj" (1:2) on node 0 (GetDataSource target(s)).
  MySQLServer
  True
  False
...