【发布时间】:2013-03-20 20:43:51
【问题描述】:
我正在尝试将日志文件附加到电子邮件。
我的代码是:
**<loadtasks assembly=".../tasks.dll" />
<record name="c:foo\log.txt" action="Start" />
<target name="email">
<mail
from="abc@foo.com"
tolist="xyz@foo.com"
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 文件。因为它正在被另一个进程使用。
为什么会出现这个错误?
【问题讨论】:
-
我认为
**<loadtaks是问题中的错字,而不是您的 nant 脚本中的错字? -
对。这是问题中的错字。
-
我想你在
<record>上看到了同样的问题,我认为这是错误的方法。除了记录,您是否可以尝试copying 文件然后附加副本,或者确定为什么c:\foo\log.txt仍在使用并停止打开它的进程?
标签: nant nantcontrib