让Nant.MailLogger在Windows 2008上运行

时间:2010-09-29 21:35:03

标签: windows-server-2008 nant

我在一台机器上运行了一段时间的NAnt / NAntContrib构建:
(MS Windows Server 2003标准版32位SP2)

现在我需要在更新的机器上运行相同的构建脚本:
(Windows Server Standard 2008)

我已经安装 NAnt NAnt.Config 并在新机器上工作。
我在原始计算机上使用NAnt.Core.Maillogger,配置如下:

<property name="MailLogger.mailhost"        value="mail.server.com" />
<property name="MailLogger.from"            value="autobuild@hostredacted.com" />
<property name="MailLogger.failure.notify"  value="true" />
<property name="MailLogger.success.notify"  value="true" />
<property name="MailLogger.failure.to"      value="team@hostredacted.com" />
<property name="MailLogger.success.to"      value="team@hostredacted.com" />
<property name="MailLogger.failure.subject" value="AUTOBUILD: Failure on TEST" />
<property name="MailLogger.success.subject" value="AUTOBUILD: Success on TEST" />
<property name="MailLogger.failure.attachments" value="MailLogger.failure.files" />
<property name="MailLogger.success.attachments" value="MailLogger.success.files" />

<fileset id="MailLogger.failure.files"> 
    <include name="build.log" /> 
</fileset>
<fileset id="MailLogger.success.files"> 
    <include name="build.log" /> 
</fileset>

我运行一个非常简单的测试.build文件来测试邮件功能:

<target name="test_mail_pass">
    <echo message="Test Success:
run by ${environment::get-user-name()}"/>
</target>

<target name="test_mail_fail">
    <echo message="Test Fail:
run by ${environment::get-user-name()}"/>
    <fail message="Some Failure occurred." />
</target>

以上在原始机器上工作,并且似乎在新机器上工作,除了没有发送邮件的事实。 控制台中没有消息表明出现了任何问题(忽略<fail>任务的明显用法。

我甚至不知道从哪里开始弄清楚这里有什么问题,或者如何解决这个问题。

非常感谢任何协助。

1 个答案:

答案 0 :(得分:0)

我用很多Google来解决这个问题 其中一件事解决了我的问题,我不知道它是什么,但我的问题现在已经解决了。

  1. 我的批处理文件需要具有以下命令行选项:

    -logger:NAnt.Core.MailLogger
    
  2. 中引用的文件
    <fileset id="MailLogger.failure.files">
        <include name="build.log" /> 
    </fileset>
    <fileset id="MailLogger.success.files"> 
        <include name="build.log" /> 
    </fileset>
    
  3. 需要真正存在。
    我读过的一篇文章(丢失链接)告诉我一个问题,如果要附加的文件不存在,邮件将不会被发送。