Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MSBuild yüksek oranda özelleştirilebilir ve genişletilebilirdir (ayrıntılar için bkz. Derlemenizi özelleştirme), bu nedenle çevrenin ve yapının uygun yapılandırılması için özel özen gösterilmelidir.
Yükleme konumuna Yazma erişimini kısıtlama
MSBuild'i (Visual Studio, .NET SDK veya tek başına) yalnızca güvenilen kullanıcıların yazma erişimine sahip olduğu bir konuma yükleyin.
MSBuild yürütülebilir dosyasının yanına ve MSBuild yürütülebilir dosyasının alt klasörlerine yerleştirilen çeşitli ikili ve XML dosyalarını değiştirerek veya ekleyerek derleme mantığını değiştirebilirsiniz. Bu nedenle, klasöre yalnızca güvenilen kullanıcıların yazmasına izin verilmelidir.
İlgili yapılandırmalar
-
MSBuildExtensionsPath ve MSBuildUserExtensionsPath - özellikle uzantı mantığından çıkmak için kullanılabilecek
ImportUserLocationsByWildcardBefore{ImportingFileNameWithNoDots}özelliği
Derlemeyi yalnızca bildiğiniz ve gözden geçirdiğiniz kaynaklarda çalıştırın
MSBuild'i (projeleri derlemek ve geri yüklemek için, aynı zamanda Visual Studio'da projeleri açmak için) yalnızca tam olarak güvendiğiniz kaynaklarda çalıştırın.
MSBuild mantığı, proje dosyalarınız da dahil olmak üzere derleme betik dosyaları içinde genişletilebilir, bu nedenle bilinmeyen derleme mantığının derleme ortamında rastgele kod yürütebildiği varsayılmalıdır.
İlgili yapılandırmalar
- Visual Studio Güven Ayarları
- Yanıt dosyalarını devre dışı bırakma
Derlemenizi doğrulanmış ve ayrılmış bir konumda çalıştırın
MSBuild, projenizin veya çözümünüzün bir klasöründen ve sürücünün köküne kadar olan herhangi bir üst klasörden otomatik olarak mantık içerebilir. Buna .user dosyaları, [before|after].{solution}.targets dosyaları, Directory.Build.[props|targets|rsp] dosyaları ve diğerleri dahildir.
Yalnızca yetkili kullanıcıların veya hesapların, derlemeyle ilgili dosyalarınızın bulunduğu konuma ve sürücünün köküne kadar olan hiyerarşik yapının herhangi bir klasörüne yazma erişimine sahip olduğundan emin olun.
Directory.Build.[props|targets|rsp]istenmeyen eklenmesini önlemek için, bu tür dosyaları kaynaklarınızın köküne ekleyebilirsiniz. Dosya boş bir MSBuild Project öğesi olabilir.
İlgili yapılandırmalar
Referans alınan paketleri ve kaynak oluşturan akışları bilmek ve gözden geçirmek
Derleme mantığı NuGet paketleri tarafından otomatik olarak genişletilebilir. Geri yükleme işleminde, derleme veya derleme sürecinize dahil edilen bu tür mantık yürütülür. Oluşturma, derleme ve çalışma zamanı sırasında NuGet paket varlık türleri ve bunların rolü hakkında bilgi sahibi olduğunuzdan emin olun. Özellikle build, buildTransitive, buildMultitargeting ve analyzers varlıkları, açıkça geri çevrilmediği sürece derleme sürecine otomatik olarak dahil edilir ve bu nedenle süreç sırasında otomatik olarak yürütülür.
Bir paketteki derleme veya derleyici uzantısı mantığına ihtiyacınız olmadığında ExcludeAssets kullanın (veya daha iyisi, sadece derleme mantığını istiyorsanız açıkça IncludeAssets belirtin).
NuGet ekibinin geçerli belgeleri ve kılavuzlarını bildiğinizden emin olun. Bu sorun için yetkili bir kaynak olarak proje dosyalarındaki PackageReference belgesine bakın.
İlgili yapılandırmalar
Derleme başlatma betiğini/işlemini öğrenme ve gözden geçirme
Yapı mantığı, özellikle eklentilerin (örneğin, özel günlükleyiciler) veya yapı mantığının (örneğin, MSBuildUserExtensionsPathyapı betikleri) enjeksiyonuna neden olabilen komut satırı argümanları veya çevre değişkenlerinden etkilenebilir. MSBuild işlemine hangi komut satırı bağımsız değişkenlerinin ve ortam değişkenlerinin uygulandığını bildiğinizden emin olun. Bu şekilde derleme mantığının nasıl etkilendiğini daha iyi anlayacaksınız.
Derlemenizi çalıştırmak için ayrılmış kullanıcı hesabı ve oturum kullanma
Daha önce farklı bir derleme de dahil olmak üzere bilinmeyen işlemleri veya betikleri çalıştırmak için aynı sistemde kullanılabilecek bir hesap altında çalıştırmayın. Özellikle, aynı kullanıcı hesabı altındaki ilişkisiz derleme, tam olarak güvenilmeyen ve bilinmeyen kaynaklarda çalıştırılmış olabilir.
MSBuild, kullanıcı profilindeki çeşitli konumlardan (özellikle MSBuild SDKMSBuildUserExtensionsPath konumunda bulunan derleme mantığını otomatik olarak içerir) veya ortam değişkenleri tarafından eklenen konumlardan (MSBuildUserExtensionsPath aynı ada sahip bir MSBuild özelliğiyle özelleştirebilirsiniz) kaynak mantığı oluşturabilir. Bu özelliğin varsayılan değeri yoktur, bu nedenle aynı ada sahip ortam değişkeninden kaynaklanabilir).
Uyarı
Uygulama ayrıntısı olarak MSBuild, adlandırılmış kanallar ve mutex'ler aracılığıyla kalıcı işlemlerini bulur ve bunlarla iletişim kurar. Windows bu adlandırılmış kanallar ve mutex'ler makine genelinde bir ad alanını paylaşır. Bu nedenle, başka bir yerel hesap altındaki bir işlem bu adları kaplayabilir ve derlemenizin bunları oluşturmalarını engelleyebilir. Bu durum yalnızca bir kullanılabilirlik (hizmet reddi) sorunudur. İşletim sistemi erişim denetimleri, başka bir hesabın derlemeyi okumasını veya değiştirmesini engellemeye devam eder. Tüm yerel hesapların güvenilir olduğu bir makineyi veya yalıtılmış bir oturumu, kapsayıcıyı veya VM'yi tercih edin.