التلقائي الجمعية رقم الإصدار الإدارة في VS2008

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

  •  03-07-2019
  •  | 
  •  

سؤال

لدي VS2008 المشروع مكتوب في c# مع عدد من الجمعيات.أود أن يكون وسيلة بسيطة لإدارة الإصدار الأرقام بين مختلف الجمعيات و طريقة تلقائيا زيادة عدد بناء و أن حفظها في إصدار عدد من كل من الجمعية العامة.

أظن أن هذه هي مشكلة معظم المشاريع لذلك يفترض أنه قد تم حلها من قبل ؟

أي اقتراحات بشأن كيف يمكن تبسيط إدارة مشروعي نسخة الموارد ؟

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

المحلول

وأنا استخدم ملف .cs على مستوى الحل الذي يرتبط بكل المشاريع في الحل الذي يحتوي على الأسطر التالية:

using System.Reflection;
[assembly : AssemblyVersion("1.2.3.*")]

وتأكد من إزالة السمة AssemblyFileVersion من ملف AssemblyInfo في المشروع.

نصائح أخرى

ووضع ملف إلى الحل، نسمي هذا "SolutionInfo.cs" (أفترض C #، ستعمل أيضا في VB). في هذا تضع كل الخصائص التي تكون مشتركة. تبدأ AssemblyVersionAttribute.

وبعد ذلك في كل وصلة المشروع <م> إلى ذلك عن طريق اختيار إضافة العنصر الموجود على كل مشروع، ولكن بدلا من النقر إضافة، استخدم القائمة المنسدلة لإضافة كرابط.

لدينا ملف AssemblyInfoGlobal.cs واحد على مستوى الحل، مثل إجابات أخرى. ثم لدينا كجزء من بناء النصي تطبيق القليل الذي يأخذ CCNetLabel أن CruiseControl.net يعرف (واستخدام defaultLabeller لتوليد التسميات) والخروج الملف العالمي، تعديل رقم الإصدار، ومن ثم التحقق من ملف العالمي مرة أخرى في .

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

ونحن أيضا ثم تحديث أرقام إصدار نشر المشاريع - تم العثور على عدد لهذه ضمن ملف VDProj، لكنني لست متأكدا من أنك سوف تجد هذه في الإصدارات السريع - أعتقد أن هذا هو ميزة صعودا المهنية الكاملة. وبعض المشاريع لديها عشرة مشاريع النشر، ولكن توجد طريقة سهلة لexternalise النسخة numberf من ملف VDPROJ نفسها. (أو هناك؟)

وبعد ذلك بناء يحدث وهو ما يعني أن جميع المخرجات من بناء لها نفس رقم الإصدار في أي وقت يمكن أن نحصل على نسخة من MSI أو التجميع ونحن نعرف بالضبط ما المصدر ان تستخدم لبناء هذا الانتاج.

<اقتباس فقرة>   

وusing System.Reflection; [assembly : AssemblyVersion("1.2.3.*")]

ومجرد تعليق على هذا، والذي يتم إنشاؤه تلقائيا دورات رقم الإصدار. حتى إذا كنت تبحث لتكون قادرة على نسخة منها أن بناء أمس ديه 1.2.3.X نسخة حيث X

لتحقيق هذا الاستخدام

[assembly : AssemblyVersion("1.2.*")]

وهذا سوف تحصل على نسخة 1.2.X.Y حيث الجمع بين X.Y أكبر مما هو عليه اليوم أمس. انا التخمين X.Y هي وظيفة من التاريخ والوقت على التوالي

ويمكنك كتابة مخصص MSBuild مهمة للقيام بذلك. إلقاء نظرة على هذا النهج

ويمكنك استخدام العلامات النجمية في AssemblyInfo.cs الخاص بك:

// Version information
[assembly: AssemblyVersion( "1.0.*" )]

ووسيزيد versionnumbers تلقائيا. لتقاسم رقم واحد بين جميع المجالس ... ولست متأكدا، ولكن ربما كنت تستخدم السمة المذكورة في ملف مشترك.

لقد استعملت svnversion MSBuild المجتمع المهام أن تفعل شيئا مثل هذا ، أنا اتبعت التعليمات هنا على الرغم من أن الطريقة التي كنت تفعل ذلك لا تمتد عدة جمعيات.

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