2013-03-20 4 views
0

Я пытаюсь прикрепить файл журнала к электронной почте.Nantcontrib <record> Задача

Мой код:

**<loadtasks assembly=".../tasks.dll" /> 
<record name="c:foo\log.txt" action="Start" /> 
<target name="email"> 
<mail 
     from="[email protected]" 
     tolist="[email protected]" 
     subject="Build" 
     message="Build Failed" 
     mailhost="smtp.anywhere.net"> 
     <files> 
     <include name="c:foo\log.txt" /> 
     </files> 
     <attachment> 
     <include name="c:foo\log.txt" /> 
     </attachment> 
    </mail> 
</target> 
<record name="c:foo\log.txt" action="Close" />** 

Моя команда:

nant -f:filename.build email -l:c:foo\log.txt 

Я получаю следующее сообщение об ошибке:

System.Security.SecurityException: Request for the permission of type 'System.Se 
curity.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089' failed. 
    at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMa 
rk& stackMark, Boolean isPermSet) 
    at System.Security.CodeAccessPermission.Demand() 
    at System.IO.FileSystemInfo.get_FullName() 
    at NAnt.Contrib.Tasks.RecordTask.ExecuteTask() 
    at NAnt.Core.Task.Execute() 
    at NAnt.Core.Project.InitializeProjectDocument(XmlDocument doc) 
    at NAnt.Core.Project.Execute() 
    at NAnt.Core.Project.Run() 

Когда я не использую <record> задач дает другую ошибку, как, не удалось подключить txt-файл. bcoz используется другим процессом.

Почему я получаю эту ошибку?

+0

Я предполагаю, что '** Mightymuke

+0

Справа. это опечатка в вопросе. –

+0

Я предполагаю, что вы видите ту же проблему с '', я думаю, что это неправильный путь. Вместо записи вы могли вместо этого попробовать [копировать] (http://nant.sourceforge.net/release/0.85-rc2/help/tasks/copy.html) файл, затем прикрепить копию, или определить, почему 'c: \ foo \ log.txt' все еще используется и останавливает процесс, в котором он открыт? – Mightymuke

ответ

0

я сделать что-то вроде флеш в рекордно короткие задачи, как раз перед отправкой электронной почты затем скопируйте файл присоединять по электронной почте, надеюсь, что это временное решение работает

<echo>${emailsubject}</echo>  
    <echo>Sending Email</echo> 
    <echo>Attaching File : ${build.log.dir}/email_${build.log.filename}</echo> 
    <echo>Attaching File : ${path.vsshelper.log}/logs/email_${build.log.getlistoffiles}</echo> 

    <record name="${build.log.dir}/${build.log.filename}"  action="Flush" level="Verbose"/> 
    <sleep milliseconds="5000" /> 
    <copy file= "${build.log.dir}/${build.log.filename}" tofile="${build.log.dir}/email_${build.log.filename}" /> 
    <copy file= "${path.vsshelper.log}/logs/${build.log.getlistoffiles}" tofile="${path.vsshelper.log}/logs/email_${build.log.getlistoffiles}" />   
+0

Я все еще получаю сообщение об ошибке Задача. i m загрузить nantconritb tasl.dll. Я думаю, что есть что-то, я пропал без вести. Но я получил его работу, используя msbuild. Я использовал команду msbuild «/ flp:» EX:/flp: erroronly; logfile = msbuild.err, я скопировал его в текстовый файл и смог подключиться к электронной почте. без каких-либо ошибок. спасибо за вашу помощь –

+0

хорошо, что MSbuild сработал для вас. я думаю, что сделал флеш, скопировал и отправил электронную почту – dekdev

0

Убедитесь, что файл закрывается до вы пытаетесь отправить его по электронной почте.