2012-08-13 17 views
42

Visual Studio bir yapı çalıştırdığında, çalışmanın çoğunu yapmak için MSBuild'i çalıştırır. Uygun yapılandırma ve Platform özellikleri ile .sln dosyasını MSBuild'e geçirirseniz, Visual Studio'nun nasıl yapacağı konusunda çözümünüzü oluşturacaktır. Bazen bir yapı MSBuild aracılığıyla değil, Visual Studio, veya tersi yoluyla hata olacaktır:Visual Studio, MSBuild'e hangi parametreleri iletir?

msbuild mysolution.sln /p:Configuration=Release /p:Platform="Any CPU" 

Ancak farklılıklar vardır.

Visual Studio, süreci etkilemek için MSBuild'e hangi parametreleri iletir? Bir yapı inşa edildiğinden geçtiği parametreleri görmenin bir yolu var mı?

+0

Teknik olarak, 'MSBuild.exe'yi çalıştırmaz, ancak dahili motoru dahili olarak barındırır, daha fazla ayrıntı için yanıtımı bakın. –

cevap

31

Visual Studio MSBuild.exe çalışmaması Detay sütununda komut satırı argümanları Bak, ama (Microsoft.Build.* meclisleri vasıtasıyla) inşa motoru kendisi barındıran - en azından olmasıdır varsayılan C# proje sistemi için durum. Diğer diller, eklentiler, paketler vb. Bunu farklı yapabilir.

Aslında, Microsoft bloglarında bunun hakkında bir yayın dizisi vardı, bunları bulmaya ve bu yanıtı güncellemeye çalışıyorum. Bu tabloyu kapaBu tabloyu aç here'daki "MSBuild in Visual Studio" iletilerini arayın.

Özgün soru ile ilgili olarak, this sayfa daha fazla yardımcı olabilir. Ayrıca, "Araçlar", "Seçenekler", "Projeler ve Çözümler", "Oluştur ve Çalıştır" ve MSBuild çıktısı ayrıntılarını artırabilirsiniz. "Teşhis" ile, temelde yapıyı başlatmaya başladığınız her özelliği görmelisiniz.

+1

Bir dış MSBuild işlemini hiç göremedim, bu yüzden barındırma olayının beklendiğini tahmin ettim. Tanılama ayarı istediğim şeye yakın geliyor, ancak eğer varsa, eşdeğer MSBuild komut satırı sözdizimini anlamak zorlaşıyor. –

+0

@ProgrammingHero Konu budur - böyle bir komut satırı yoktur.Bunu, "tersine mühendislik" özellikleriyle bulmak zorunda kalacaksınız. –

+0

Bunu iyi bir başvuru kaynağı olarak buldum http://blogs.msdn.com/b/msbuild/archive/2006/01/06/508981.aspx. Bunu cevabınıza göre düzenlerdim, ama biraz tahmini olabileceğini düşündüm. Belki de bunu eklemek istersiniz, böylece cevabınızı kabul edebilir miyim? –

7

İlk kapalı, tanı düzeyi günlüğü almak için msbuild'i /v:diag bağımsız değişkeniyle çalıştırabilirsiniz. Bu, bir yapının neden başarısız olduğunu anlamakta gerçekten yardımcı olabilir.

Aksi takdirde, Process Monitor kullanırsanız, işlem için gönderilen belirli komut satırını görebileceğiniz işlem başlatma olaylarını izleyebilirsiniz.

  • OperationisProcess Create »
  • OperationisProcess Start ekle» Yapınızın çalıştırın
  • Tamam
  • ekle

    • Çalıştır Process Monitor
    • Filtre »Filtre ...: Özellikle

      VS ve thr aracılığıyla ough komut satırı Msbuild

  • +0

    MSBuild ayrı bir işlem olarak yürütüldüyse, bu şekilde devam edecek; Ne yazık ki, en azından Visual Studio 2010'da, ayrı bir süreç olarak görünmüyor. –