Dea*_*ean 3 msbuild msbuildcommunitytasks
我的构建脚本中有一个目标,它将发送一封带有附件的电子邮件,详细说明模块的svn更改.
如果我硬编码单个电子邮件地址,这是有效的,但我现在想要通过电子邮件发送多个开发人员并且脚本失败.下面是代码
<Target Name="MailInformationUpdate" DependsOnTargets="ZipArtifact" Condition="!Exists('BUILD_IS_PERSONAL')">
<ReadLinesFromFile File="$(BuildDir)\$(recipientListFileName)">
<Output PropertyName="Recipients" TaskParameter="Lines"/>
</ReadLinesFromFile>
<Mail SmtpServer="$(smptServer)"
To="@(Recipients)"
From="$(senderEmail)"
Body="Attached is a list of the changes made since the last release. "
Subject="This module has been updated. You may wish to update." Attachments="$(BuildDir)\Builds\$(svnChangeFileName)"
/>
</Target>
Run Code Online (Sandbox Code Playgroud)
如果我更改收件人行以阅读$(收件人),列表中的第一个人将收到电子邮件,后续地址不会收到电子邮件.
然后我将To行更改为你在@(收件人)下面看到的内容,因为我可能会循环每个收件人.没有这样的运气!我收到错误消息
Emailing "{0}".
<path> error : A recipient must be specified.
Run Code Online (Sandbox Code Playgroud)
我读入的文件只是格式为(emailAddress1),(emailAddress2)等的文本文件
任务ReadLinesFromFile从文本文件中读取项目列表.但是文件每行必须有一个项目.
与格式(emailAdress1),emailAddress2)文本文件......你只会有一个包含一个项目(emailAdress1),emailAddress2)....你的email.txt应该是这样的:
emailAdress1
emailAdress2
...
Run Code Online (Sandbox Code Playgroud)
您从ReadLinesFromFile任务获取项目而不是属性,因此请修改您的任务:
<Target Name="MailInformationUpdate" DependsOnTargets="ZipArtifact" Condition="!Exists('BUILD_IS_PERSONAL')">
<ReadLinesFromFile File="$(BuildDir)\$(recipientListFileName)">
<Output ItemName="Recipients" TaskParameter="Lines"/>
</ReadLinesFromFile>
<Mail SmtpServer="$(smptServer)"
To="@(Recipients)"
From="$(senderEmail)"
Body="Attached is a list of the changes made since the last release. "
Subject="This module has been updated. You may wish to update."
Attachments="$(BuildDir)\Builds\$(svnChangeFileName)"
/>
</Target>
Run Code Online (Sandbox Code Playgroud)
(邮件目标的日志中存在错误,即使有多个收件人,只有第一个收件人会在日志中显示.)
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |