0

我有一个正在使用的变量,称为$(TargetConnectionString)

它设置为

SomeValue=Things;Data Source=MySQLServer;Integrated Security=True;Pooling=False

有没有一种很酷的 MSBuild 方法来获取对这个列表中 MySQLServer 部分的引用?

(我可以使用批处理文件来解析它,但是我必须找到一种方法来读回它。所以我希望有一种方法可以说$(TargetConnectionString."Data Source")(或类似的东西)

那么,我怎样才能得到 MySQLServer 文本。

4

1 回答 1

1

以下工作,通过使用将 TargetConnection 字符串作为属性集的 MsBuild 任务回调到项目文件中。虽然不适用于空格,所以我删除了它们,希望这对你有用

<?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
于 2011-09-20T20:39:13.807 回答