2009-05-31 14 views
5

Çalışma ortamında vb/C# .net içinde geliştirilen orta boyutlu bir windows uygulaması koruruz. Hala bu uygulama için derleme ve dağıtım süreci el kitabıdır. Şu anda hala bilmediğim MSBuild'i kullanarak bu süreci otomatik hale getirmeye kararlıyım.Bir Msbuild yöneticisi için astar gerekir

Uygulamamız zaten dört çözüm (.sln) olarak gruplandırılmış ve sadece dört slns bir sırayla inşa etmek gerekir projelerin set basit bir yapı, bir yapıya sahiptir. Ve sonra bir dizine bir proje (inşa edilecek son sln parçası) yayınlayın. İşte bu. Zaten 30 dakika manuel yapım süresi tüketen basit bir süreç ve eminim ki bu zamanın 1/4 at mseast kullanarak msbuild kullanarak manuel girişim olmadan yapılabilir.

Tüm hedeflerim iyi ayarlandı, sürecimi gerçekleştirmek için MSBuild kaynakları için web'e bakmaya başladım, ancak bana kafamın karıştığı birçok şeye bakıyor olabilir. Basit senaryo için nasıl başlayacağınız ve nereden başlayacağınız konusunda bir işaretçiye veya iyi bir açıklamaya ihtiyacınız var. Yardım çok takdir edilir.

cevap

5

Bu, yazmak için çok kolay bir komut dosyası gibi geliyor. Hatta bir toplu iş dosyası yapacağını:

Elbette
msbuild \path\to\first.sln /p:Configuration=Release 
msbuild \path\to\second.sln /p:Configuration=Release 
msbuild \path\to\third.sln /p:Configuration=Release 
msbuild \path\to\fourth.sln /p:Configuration=Release 
call deploy

, çok daha iyi bir sunucu çalışıyor olması olurdu, yapı durumu ve tarihe bir web arayüzü verir CruiseControl.NET, derler.

MS Build'ta, arayan için iki ana denetim noktası vardır: Hedef ve Özellikleri. Hedef, ne derleme, kaynak, derleme, dağıtım vb. Şeydir. Özellikler, Hedefin nasıl oluşturulduğunu kontrol eder.

Yapılandırmayı, Yapılandırması özelliğini kullanarak kontrol edebilirsiniz (yukarıya bakın). *. * Proj dosyalarınızı açarsanız, PropertyGroup öğelerini göreceksiniz. Bunlar, /p arg komutunu kullanarak komut satırından ayarlanabilir. İşte

iki args için özellikleri şunlardır:

MSBuild, Sürekli Entegrasyon ve CuriseControl.NET büyük bilgi bir yeri vardır
/target:<targets> Build these targets in this project. Use a semicolon or a 
       comma to separate multiple targets, or specify each 
       target separately. (Short form: /t) 
       Example: 
        /target:Resources;Compile 

/property:<n>=<v> Set or override these project-level properties. <n> is 
       the property name, and <v> is the property value. Use a 
       semicolon or a comma to separate multiple properties, or 
       specify each property separately. (Short form: /p) 
       Example: 
        /property:WarningLevel=2;OutDir=bin\Debug\ 
+0

Cevabınız için teşekkür ederiz. Ancak yapılandırma seçeneklerini ve hepsini nasıl ayarlayabilirim? Örneğin, uygulama ayar projelerimi DEbug modunda ayıklarken, ancak betik her zaman Yayınlama modunda oluşturmalıdır. Hızlı cevabınız için tekrar teşekkürler. – blntechie

+0

Ayrıntıları ekledim. Hepsi oldukça basit ve iyi bir ustalık. MS Build ** çok otomatik hale getirebilir **. –