الإصدارات التجريبية
أمثلة على طرق إصدار مشاريع .NET Core سواء مع النشر المستمر (CD) أو بدونه
إذا قمت باستنساخ هذا الموقع وتشغيله محليًا في وضعي التصحيح والإصدار، فسترى نتائج مختلفة. يمكنك زيارة الإصدار المباشر على https://versioningdemos.azurewebsites.net/ وقد مر عبر Git وVSTS الخاص بي لإنشاء معلومات الإصدار.
ستلاحظ أن Microsoft لديها استراتيجيات مختلفة لإصدار الإصدارات ضمن مكتبات .Net الخاصة بها، ومن المفترض أنها ليست من نفس الفرق.
هناك 3 إصدارات يتم الرجوع إليها بشكل عام ضمن مجموعة .NET Core
- إصدار الملف - يُستخدم لمعرفة أي DLL أحدث.
- يحتوي على النمط xybr الذي يعتبر عادةً Major.Minor.Build.Revision
- إصدار المنتج - يُعرف أيضًا باسم InformationalVersion داخل التجميع. هذه نسخة نصية حرة تُستخدم لأغراض وصفية.
- يميل تنسيق هذا حاليًا إلى اتباع نمط الإصدار الدلالي (الذي طرحه GitHub)
- xyp-buildinfo Major.Minor.Patch[-بيانات التعريف]
- يمكنك قراءة المزيد على semver.org
- إصدار التجميع - إصدار التجميع
الطريقة العادية التي تراها لاسترداد معلومات الإصدار لا تعمل إلا مع بعض حالات الاستخدام وتنهار عند وضعها في مكتبة.
مشاريع عينة الإصدار
تستخدم كل هذه المشاريع ملفات .vbproj (يمكن أن تكون أيضًا .csproj) بدلاً من التقنيات السابقة التي استخدمت AssemblyInfo.cs أو project.json
لم يتم ضبط أي شيء - افتراضي
- الإعدادات الافتراضية إلى 1.0.0
تحديد القيمة - يدويا
استخدام Visual Studio UI (خصائص المشروع/الحزمة)
- حتى إذا لم تستخدم هذا لتعيين المعلومات فإنه سيتم عرض القيم المحسوبة
- كن حذرًا من عدم تجاوز القيم المحسوبة في مكان آخر عن طريق الخطأ
- تحرير
.csproj
ضبط كافة القيم - Manual.AllDifferent
- باستخدام واجهة المستخدم Visual Studio
- تحرير
.csproj
ما عليك سوى استخدام VersionPrefix - VersionPrefix
VersionSuffix - VersionSuffix
مراجعة البناء - مراجعة البناء
- تكرار إنشاء ومراجعة أحرف البدل من خلال تطبيق منطق نمط إصدار roslyn
- يستخدم الحسابات في ملف csproj
BuildDateTime - BuildDateTime
- تم استخدام x.YYYY.MDD.HHMM لإنشاء قيم تلقائية
بناء خدمات فريق الاستوديو المرئي - VSTS
- قم بإضافة BUILDNUMBER الذي تم تكوينه من VSTS إلى VersionSuffix
يتم إنشاء خدمات فريق Visual Studio باستخدام فرع Git - VSTS.WithGit
- أضف فرع Git إلى لاحقة الإصدار أيضًا
TagHelpers
عند استخدام Taghelpers هناك العديد من الأخطاء.
- يتم وضع الصفحات في مجموعات مختلفة عما قد تتوقعه
- قد يؤدي التشغيل في Debug أو Release إلى إعطاء قيم مختلفة وتجميعات تم إنشاؤها
- يؤدي وضع TagHelper في مكتبة خارجية إلى تغيير نتيجة التجميع الجاري تشغيله