Aracılığıyla paylaş


MSBuild Sunucusu

MSBuild Server, Windows, Linux veya Mac .NET Core derleme ortamlarında .NET CLI kullanarak dotnet build komutu çağrıldığında gerçekleşen .NET Core derlemelerinin performansını artırır. Derleme her istenişinde derleme işlemini başlatmak yerine bağlamın büyük bölümü uzun süre çalışan bir işlemde önbelleğe alınır, böylece bir sonraki derleme tarafından yeniden kullanılabilir. MSBuild Sunucusu, Visual Studio derlemeleriyle ilgili değildir, çünkü Visual Studio MSBuild için bir konak işlevi görür ve gerekli tüm bağlamı zaten önbelleğe alır.

İşlem hatları genellikle her derleme için isteğe bağlı olarak bir derleme ortamı oluşturup derleme tamamlandığında bu ortamı attığından, MSBuild Sunucusu genellikle Azure Pipeline derlemeleri gibi CI senaryolarında yararlı olmaz.

MSBuild Sunucusunu Etkinleştirme

MSBuild sunucusu varsayılan olarak etkin değildir; etkinleştirmek için ortam değişkenini DOTNET_CLI_USE_MSBUILD_SERVER veya 1olarak true ayarlayın.

Etkinleştirildikten sonra ilk kez yeni bir derleme işlemi başlatırsınız, derleme sunucusu başlatılır. İlk derlemeyi başlattığınızda, önbelleği etkinleştirir. İlk derleme tamamlandıktan sonra önbellek kalıcı hale geldi; bu nedenle ikinci derleme, önbelleğe alınan bilgiler nedeniyle başlangıç süresi önemli ölçüde azaldığından daha hızlı ilerler. Derleme tamamlandıktan sonra önbellek devam eder, ancak 15 dakikalık boşta kalma süresinden sonra kapatılır. Bu nedenle, birçok derlemenin ardı ardına talep edildiği yinelenen derleme senaryolarında öncelikle avantaj sağlar.

MSBuild Sunucusunu kapatma veya devre dışı bırakma

MSBuild sunucusunun kullanımını devre dışı bırakmanın birkaç farklı yolu vardır. Yalnızca çalışan sunucuyu kapatmak istiyorsanız, dotnet build-server shutdown komutunu çalıştırabilirsiniz.

Bir makinedeki tüm derlemelerde özelliği devre dışı bırakmak için sistem ortam değişkenini DOTNET_CLI_USE_MSBUILD_SERVER veya falseolarak 0 ayarlayabilirsiniz. Bu değişkeni launch.json içinde VS Code gibi bir araçta proje bazında da ayarlayabilirsiniz.

Belirli bir komut satırı derlemesi çağrısında MSBuild Sunucusu'nu devre dışı bırakmak için /nr:false seçeneğini (veya /node-reuse:false) kullanabilirsiniz.

Özelliği tamamen devre dışı bırakmak için etkinleştiren değişiklik dalgasını geri çevirebilirsiniz; SET MSBuildDisableFeaturesFromVersion="17.4"öğesini seçin. Bu, aynı değişim dalgasındaki diğer özellikleri devre dışı bıraktı. Değişiklik dalgaları hakkında daha fazla bilgi için bkz. MSBuild değişiklik dalgaları.

Derleme sunucusunun geçerli durumunu belirleme

Makinede işlem durumunu görüntüleyebilir ve MSBuild sunucu işlemlerini arayabilirsiniz. MSBuild sunucu işlemleri dotnet.exe ile başlatılır ve MSBuild.dll yolunu ve komut seçeneği /nodemode:8'i gösterir. Burada 8 MSBuild Sunucusu'nu gösterir (/nodemode:1 normal MSBuild çalışan düğümlerini gösterir).

Ayrıca bakınız