أفضل طريقة لاكتشاف إصدار الإصدار من إصدار تصحيح الأخطاء؟.شبكة
سؤال
إذن لدي حوالي 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