2013-03-15 18 views
5

Bir ASP.NET MVC 3 uygulaması için MSBuild görevini çalıştıran TeamCity'i kullanıyorum. Şimdi her şimdi ve sonra (görünüşte rasgele) "ASPNETCOMPILER: hata ASPRUNTIME: iş parçacığı çalıştıran uygulama etki alanı kaldırıldı." MSBuild "MvcBuildViews" çalıştırır ve aspnet_compiler.exe çalıştırırsa olur. (http://msdn.microsoft.com/en-us/library/ms164291.aspx)MSBuild Görevine özel nitelikler ekleme

Şimdi bana bu hatayla ilgili bilgi iz yığını verebilir Aspnet_compiler.exe (http://msdn.microsoft.com/en-us/library/ms229863(vs.80).aspx) için bir "-errorstack" anahtarı olduğunu biliyorum, ama bu AspNetCompiler Görev bu özniteliği ayarlamak imkanı göstermiyor görünüyor .

Bu yüzden sorum şu: - var olan MSBuild Görevine herhangi bir özel özniteliği iletmenin bir yolu var mı, yoksa -errorstack özelliğini etkinleştirmek için MSBuild'in dışında aspnet_compiler.exe dosyasını el ile çalıştırmam gerekiyor mu?

+0

Senin durumunda yardımcı olabilecek bir ipucu rastladım - Denemeye muhtemelen değer. Visual Studio'da Araçlar -> Seçenekler -> Projeler ve Çözümler'e gidin (Bulamıyorsanız, "Tüm Ayarları Göster" kutusunu işaretleyin) -> "Oluştur ve çalıştır". Ardından çıktı detayını Diagnostic olarak ayarlayın. Çıkış penceresini (Ctrl-Alt-O) açın ve bir yapı oluşturun. –

+0

Bahşiş için Thx David, bizim durumumuzda sorun bir yapı sunucusu üzerinde gerçekleşiyordu, ancak Visual Studio'daki fazladan Teşhis, bu kadar çok yardımı olmazdı. Her neyse, bir suçlu bulduk sanırım, aşağıda bir cevap yazacağım. Şerefe. –

cevap

3

Bu hatanın bir nedenini bulduk (ancak MSBuild Görevlerine özel öznitelikleri nasıl ekleyemeyiz). Yapı sunucularında bellek yetersiz olduğunda bu özel durum ortaya çıkıyor gibi görünüyor.

3

Bunu, csproj dosyanızdaki Exec MSBuild görevini kullanarak yapabilirsiniz. Örneğin orijinal görev:

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

olur:

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