我从未使用过 NAnt,但可以提供另外两种解决方案......
1) 创建一个电子邮件邮件列表并将所有需要它的人添加到列表中。
然后创建一个 teamcity 用户,将其电子邮件发送到邮件列表,并为该用户设置所需的通知。
对此的限制是您必须为每个邮件列表创建一个用户,这可能会占用许可证。
2) 您可以使用 TeamCity REST API 从正在运行的构建中获取该信息。使用%teamcity.build.id%
which 将返回构建 ID 并执行以下查找:
/httpAuth/app/rest/changes?build=id:%teamcity.build.id%
这将返回构建的所有更改,例如:
<changes count="3">
<change href="/httpAuth/app/rest/changes/id:217404" id="217404" version="b6b97a0d7789d97df6df908ab582ebb723235f43" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217404&personal=false"/>
<change href="/httpAuth/app/rest/changes/id:217403" id="217403" version="064ecef5552ec2fb7875d7c26fe54cdf94b67bec" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217403&personal=false"/>
<change href="/httpAuth/app/rest/changes/id:217402" id="217402" version="9bc3a34c952059bbfc7bebeb79ba5a3c894ef555" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217402&personal=false"/>
</changes>
然后循环遍历href
每个<change>
元素的 url 结果。哪个返回类似:
<change date="20130918T133404-0600" username="welsh" href="/httpAuth/app/rest/changes/id:217397" id="217397" version="51e925e354a83deccde881b30a76974b2ff745f4" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217397&personal=false">
<comment>
My comments are here
</comment>
<files>
<file before-revision="90acd4da1972814094c22e3020c5073521a7b640@141323126c0" after-revision="51e925e354a83deccde881b30a76974b2ff745f4@1413290abe0" file="grails-app/views/layouts/global.gsp" relative-file="grails-app/views/layouts/global.gsp"/>
</files>
<user href="/httpAuth/app/rest/users/id:1" id="1" name="Welsh" username="welsh"/>
</change>
并使用它来构建您的电子邮件给您发送给谁的电子邮件给谁,最初创建的工作量更大,但在不占用许可证的情况下,您可以更自由地向谁发送电子邮件。