أفضل طريقة لاكتشاف إصدار الإصدار من إصدار تصحيح الأخطاء؟.شبكة

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

  •  09-06-2019
  •  | 
  •  

سؤال

إذن لدي حوالي 10 ملفات CSS قصيرة أستخدمها مع تطبيق mvc.هناك مثل error.css login.css وما إلى ذلك ...فقط بعض ملفات CSS القصيرة جدًا التي تجعل التحديث والتحرير أمرًا سهلاً (على الأقل بالنسبة لي).ما أريده هو شيء من شأنه تحسين فرع if else وعدم دمجه في الأجزاء النهائية.أريد أن أفعل شيئا من هذا القبيل

if(Debug.Mode){

<link rel="stylesheet" type="text/css" href="error.css" /> 
<link rel="stylesheet" type="text/css" href="login.css" /> 
<link rel="stylesheet" type="text/css" href="menu.css" /> 
<link rel="stylesheet" type="text/css" href="page.css" /> 
} else {
<link rel="stylesheet" type="text/css" href="site.css" /> 
}

سيكون لدي مهمة msbuild التي ستجمع كل ملفات CSS، وتصغيرها وكل تلك الأشياء الجيدة.أريد فقط معرفة ما إذا كانت هناك طريقة لإزالة فرع if else في البتات النهائية.

هل كانت مفيدة؟

المحلول

على وجه التحديد، مثل هذا في C#:

#if (DEBUG)
   Debug Stuff
#endif

يحتوي C# على توجيهات المعالج المسبق التالية:

#if 
#else 
#elif // Else If
#endif
#define
#undef // Undefine
#warning // Causes the preprocessor to fire warning
#error // Causes the preprocessor to fire a fatal error
#line // Lets the preprocessor know where this source line came from
#region // Codefolding
#endregion 

نصائح أخرى

  if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }

كان يجب أن أستخدم جوجل.

#if DEBUG
    Console.WriteLine("Debug mode.") 
#else 
    Console.WriteLine("Release mode.") 
#endif 

تأكد من أن خيار "إعدادات التكوين" -> "بناء" "تحديد Debug ثابت" في خصائص المشروع.

يمكنك محاولة الاستخدام

HttpContext.Current.IsDebuggingEnabled

يتم التحكم فيه بواسطة عقدة في التكوين.في رأيي هذا حل أجمل من التجميع الشرطي.

ومع ذلك، إذا كنت تريد أن تكون قادرًا على التحكم بناءً على التجميع، فأعتقد أنه يمكنك استخدام ملف سمة شرطية.

يعتبر،

ثوابت المترجم.لا أتذكر بناء جملة C#، ولكن هذه هي الطريقة التي أفعل بها ذلك في VB:

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top