2013-03-15 8 views
5

У меня есть TeamCity, выполняющая задачу MSBuild для приложения ASP.NET MVC 3. Теперь время от времени (казалось бы, случайным образом) он генерирует «ASPNETCOMPILER: ошибка ASPRUNTIME: домен приложения, в котором работает поток, был выгружен». Это происходит, когда MSBuild выполняет «MvcBuildViews» и запускает aspnet_compiler.exe.Добавление пользовательских атрибутов в задачу MSBuild

Теперь я знаю, что есть «-errorstack» переключатель для aspnet_compiler.exe (http://msdn.microsoft.com/en-us/library/ms229863(vs.80).aspx), который может дать мне трассировки стека информацию об этой ошибке, но мне кажется, что AspNetCompiler Задача не предоставляет возможность установить этот атрибут (http://msdn.microsoft.com/en-us/library/ms164291.aspx) ,

Итак, мой вопрос: есть ли способ передать какой-либо пользовательский атрибут существующей задаче MSBuild или мне нужно запустить aspnet_compiler.exe вручную за пределами MSBuild, чтобы включить функцию -errorstack?

+0

я наткнулся на совет, который может помочь в вашей ситуации - это, вероятно, стоит попробовать. В Visual Studio перейдите в Инструменты -> Параметры -> Проекты и решения (установите флажок «Показать все настройки», если вы не можете найти его) -> «Сборка и запуск». Затем установите выходную подробность в «Диагностика». Откройте окно вывода (Ctrl-Alt-O) и выполните сборку. –

+0

Thx для чаевых Дэвида, в нашем случае проблема была на сервере сборки, так что дополнительная диагностика в Visual Studio не была бы очень полезной. В любом случае, я думаю, что мы нашли преступника, я напишу ответ ниже. Приветствия. –

ответ

3

Мы обнаружили причину этой ошибки (но не совсем, как добавить пользовательские атрибуты в задачи MSBuild). Похоже, что это исключение происходит, когда серверы сборки работают с низким объемом памяти.

3

Вы можете достичь этого, используя задачу MSBuild Exec в файле csproj. Например, исходная задача:

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

становится:

<Exec Command="$(MSBuildFrameworkToolsPath)\aspnet_compiler.exe -v temp -errorstack -p $(WebProjectOutputDir)" /> 

 Смежные вопросы

  • Нет связанных вопросов^_^