كيف يمكنني تنشيط إخراج msbuild الخاص بي إلى ملف السجل من Rake
سؤال
أنا أستخدم جوهرة Albacore الرائعة مع Rake لإنشاء مشروع .NET جديد. لا تزال مؤسستي تستخدم NANT ، وهناك الكثير من الأشخاص الذين يتوقعون رؤية ملف السجل عند تنفيذ برنامج Build Script. كيف يمكنني حفظ إخراج مهمة MSBuild التي يتم إلقاؤها على stdout إلى ملف السجل؟
المحلول
لقد اكتشفت حل. لا نحتاج حقًا إلى ملف سجل إنشاء لخادم CI الخاص بنا (Hudson) ، ولكن سيكون من الجيد أن يكون لديك ملفات فعلية للتحقق من تشغيل البناء محليًا ، خاصةً عندما نقوم بعمل رقصة تسجيل الوصول والبناء فشل.
لحسن الحظ ، كانت رجال Albacore أذكياء بما يكفي لإنشاء خيار ". parameters" ، والذي يمكن استخدامه مع أي من مهام أداة سطر الأوامر لإضافة معلمات لا يتم التعامل معها صراحة بواسطة هذه المهمة. لذلك ، على سبيل المثال ، يمكنك إضافة معلمة إلى مهمة MSBuild لتحديد ملف تسجيل الدخول لـ MSBuild. ويذهب شيء من هذا القبيل قليلاً:
BUILD_REPORTS = 'BuildReports'
MSBUILD_EXE = "C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe"
directory BUILD_REPORTS
CLEAN.include BUILD_REPORTS
task :default => [:build]
desc "Build the solution"
msbuild :build => BUILD_REPORTS do |msb|
msb.properties :configuration => :Debug
msb.path_to_command = MSBUILD_EXE
msb.targets :Clean, :Build
msb.solution = "./mysolution.sln"
msb.parameters "/l:FileLogger,Microsoft.Build;logfile=" + log_file("build")
end
def log_file(log_file_name)
BUILD_REPORTS + log_file_name + ".log"
end
إن RakeFile لدينا أكثر تعقيدًا من ذلك لأنه يجب أن يفعل المزيد من الأشياء ، لكنك تحصل على الفكرة.