我遇到了MSBuild中的以下问题.我有一个包含列表(逐行)的文本文件(buildsolutions1.txt),其中包含我需要构建的所有解决方案以及用逗号分隔的相关开发人员电子邮件:
Common\Common.sln,am @ email,com
ExcGw/ExcDataService.sln,pm @ email.com; am @ email,com; jk@email.com; mk@email.com; Ppp@email.com
MessB/MessB/Message.sln,am @ email,com RiskS/RiskS2.sln,jp @ email.com; mz@email.com; mk@email.com; jk@email.com; ps@email.com
我需要逐行阅读这个文件,编译每个解决方案,万一它失败 - 发送电子邮件给相关的开发人员
我的想法是创建一个项目组行,其中每个项目都是这个文件中的一行,它有2个元数据值:解决方案 - 直到逗号的行的第一部分电子邮件 - 从逗号到行尾的行的第二部分
所以我创建了一个Property Grroup和一个目标ReadSolutions,如下所示.
我逐行读取文件,但我不知道如何设置每个行项目的元数据:
FirstPartOfTheCurrentLine(%(LinesFromFile.Identity))
SecondPartOfTheCurrentLine(%(LinesFromFile.Identity))
此语法不起作用:
%(LinesFromFile.Identity.Split(',')[0])
%(LinesFromFile.Identity.Split(',')[1])
也许有人会知道如何正确设置元数据,或者可能有另一种方法来完成这项任务.谢谢
这是代码:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0" DefaultTargets="CoreBuild">
<PropertyGroup>
<TPath>$(MSBuildProjectDirectory)\..\tools\MSBuild Extension Pack Binaries\MSBuild.ExtensionPack.tasks</TPath>
</PropertyGroup>
<Import Project="$(TPath)"/>
<PropertyGroup>
<!-- Default working folder -->
<RootFolder Condition=" '$(RootFolder)' == '' " >c:\ff\</RootFolder>
<BuildSolutionsFile >buildsolutions1.txt</BuildSolutionsFile>
<BuildSolutionsFileFullPath >$(RootFolder)$(BuildSolutionsFile)</BuildSolutionsFileFullPath>
</PropertyGroup>
<Target Name="ReadSolutions">
<Message Text=" Build solutions text file is …Run Code Online (Sandbox Code Playgroud)