Saya menggunakan TeamCity yang pada gilirannya memanggil msbuild (.NET 4). Saya memiliki masalah aneh karena setelah build selesai (dan tampaknya tidak masalah apakah build berhasil atau tidak), msbuild.exe tetap terbuka, dan mengunci salah satu file, yang berarti setiap kali TeamCity mencoba untuk menghapus direktori kerjanya, gagal, dan tidak dapat melanjutkan.
Ini terjadi hampir setiap saat.
Saya benar-benar kehilangan yang satu ini, jadi saya akan mencoba memberikan sedetail mungkin.
- Server adalah Intel Core i7, RAM 2 GB, dengan standar Windows Server 2008 64-bit SP2.
- Di TeamCity, runner msbuild dikonfigurasi dengan
/m
parameter baris perintah (yang berarti menggunakan banyak inti) - File yang dimaksud SELALU DLL eksternal yang sama yang direferensikan di salah satu proyek .NET, di jalur
External Tools\Telerik\Telerik.Reporting.Dll
. (Ada beberapa file .DLL lain yang disertakan dalamExternal Tools
dir dalam struktur jalur serupa yang tidak pernah menyebabkan masalah ini). Saat ini ini adalah dengan versi percobaan dari laporan Telerik, jika ada perbedaan. - Ketika masalah terjadi, selalu ada beberapa
msbuild.exe *32
proses yang terdaftar di Task manager: Saya yakin ada 7. Menggunakan Process Explorer, semuanya terlihat seperti proses tingkat atas (tidak ada orang tua). Mereka semua menggunakan ram 20-50MB, dan CPU 0,0%. - Jika saya menunggu 1-3 menit, proses msbuild.exe keluar dengan sendirinya, dan TeamCity kemudian dapat memperbarui direktori kerja dengan benar.
- Jika saya menghentikan proses msbuild secara manual, pembaruan TeamCity akan segera berfungsi kembali.
- Layanan pengindeksan dimatikan di Windows (meskipun dua poin sebelumnya cukup banyak mengkonfirmasi bahwa msbuild.exe yang menyebabkan masalah).
- Tidak ada properti khusus di Telerik.reporting.dll. Satu-satunya properti SVN adalah
svn:mime-type = application/octet-stream
Adakah yang pernah mengalami ini sebelumnya?
/m /nr:false
, saya akan menjalankan beberapa build dan melihat bagaimana kelanjutannya. Terima kasihUntuk menonaktifkan node reuse dalam Visual Studio, Anda harus menggunakan variabel lingkungan:
sumber