كيف يمكنني تنشيط إخراج msbuild الخاص بي إلى ملف السجل من Rake

StackOverflow https://stackoverflow.com/questions/3114454

  •  29-09-2019
  •  | 
  •  

سؤال

أنا أستخدم جوهرة 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 لدينا أكثر تعقيدًا من ذلك لأنه يجب أن يفعل المزيد من الأشياء ، لكنك تحصل على الفكرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top