我有一个名为$(TargetConnectionString)
设置为
SomeValue = Things; Data Source = MySQLServer; Integrated Security = True; Pooling = False
是否有一种很酷的MSBuild方法来获取对此列表中MySQLServer部分的引用?
(我可以使用批处理文件来解析它,但后来我必须找到一种方法来重新读取它。所以我希望有办法说$(TargetConnectionString."Data Source")
(或类似的东西)
那么,我怎样才能获得MySQLServer文本。
答案 0 :(得分: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