2011-07-27 28 views
6

'dan daha büyük olduğunda, CruiseControl.NET ve MSBUILD ve komut satırı anahtarlarından birini kullanarak yapım sürelerini artırmaya çalışıyorum, maxcpucount, yapının paralel olarak gerçekleşmesine izin vermek için kullanılabilir. Bizim çözümümüz 60'dan fazla projeye sahiptir, bu sayede herhangi bir iyileştirme yararlı olacaktır.MSBUILD, "Başka bir işlem tarafından kullanıldığından işlem xxxxx dosyasına erişemiyor." maxcpucount 1

"o Başka bir işlem tarafından kullanıldığı için dosya xxxx erişemiyor işlem MsBuild": Ancak, her ne zaman biri yukarıda ben maxcpucount, biz nedeniyle sık inşa başarısızlıkları var Ek paralel yapı ipliklerinin/süreçlerinin birbirini kilitlediği görülmektedir.

cevap

2

Bir çözüm dosyasından mı çıkıyorsunuz? Eğer öyleyse, projenin doğrudan projeye bağlı referanslarını kullandığınızdan ve Çözümün proje bağımlılık özelliğini kullanmadığınızdan emin olun. Her ikisini de biraz kullanıyorsanız, sorun olabilir. Bakınız this article.

Daha da iyisi, mümkünse, çözüm dosyasını boşaltın ve yapınızı sürmek için kendi MSBuild dosyanızı oluşturun.

+1

evet, tüm proje başvuruları ile çözüm dosyasını inşa ediyorum. – JNappi

0

Derlemeniz büyük olasılıkla inşa edilen başka bir montaj tarafından kullanılıyor. Her montajın diğer montajlar için gerekli olmadan önce kurulduğundan emin olun.

3

Sanırım bir çözüm buldum. Görünüşe göre ben/nodeReuse: false anahtarını eklerseniz dosya kilitlerini alamıyorum. NodeReuse işlevselliği msbuild süreçleri etrafında tutmak ve sonraki yapıları için dosya kilitleri üzerinde asılı olan gibi görünüyor.

http://msdn.microsoft.com/en-us/library/ms164311.aspx

+0

Bu aslında işe yaramadı. Birkaç yapı için iyi görünüyordu ama sonunda dll kilitli olduğu için kırık yapılar ile sona erdi. – JNappi

+0

Dosyayı kilitleyen msbuild'den emin misiniz? Process Explorer veya benzer bir program aracılığıyla onaylayabilir misiniz? – Mrchief