5

我让 TeamCity 为 ASP.NET MVC 3 应用程序运行 MSBuild 任务。现在时不时地(似乎是随机地)它抛出“ASPNETCOMPILER:错误 ASPRUNTIME:正在运行线程的应用程序域已被卸载。”。它发生在 MSBuild 执行“MvcBuildViews”并运行 aspnet_compiler.exe 时。

现在我知道 aspnet_compiler.exe ( http://msdn.microsoft.com/en-us/library/ms229863(vs.80).aspx ) 有一个“-errorstack”开关,可以为我提供有关此的堆栈跟踪信息错误,但似乎 AspNetCompiler Task 没有公开设置此属性的可能性(http://msdn.microsoft.com/en-us/library/ms164291.aspx)。

所以我的问题是 - 有没有办法将任何自定义属性传递给现有的 MSBuild 任务,或者我必须在 MSBuild 之外手动运行 aspnet_compiler.exe 以启用 -errorstack 功能?

4

2 回答 2

3

我们找到了导致此错误的原因(但不是真正如何将自定义属性添加到 MSBuild 任务)。当构建服务器的内存不足时,似乎会发生此异常。

于 2013-03-22T10:02:06.283 回答
3

您可以通过在您的 csproj 文件中使用ExecMSBuild 任务来实现此目的。例如原始任务:

<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />

变成:

<Exec Command="$(MSBuildFrameworkToolsPath)\aspnet_compiler.exe -v temp -errorstack -p $(WebProjectOutputDir)" />
于 2015-08-21T06:51:12.850 回答