স্ট্যাক ওভারফ্লো নীচে একটি subversion সংস্করণ নম্বর আছে:
এসএনএন সংশোধন: 679
আমি আমার .NET Web Site/Application
, উইন্ডোজ ফর্ম, ডাব্লুপিডি প্রকল্প / সমাধানগুলির সাথে এই জাতীয় স্বয়ংক্রিয় সংস্করণ ব্যবহার করতে চাই ।
আমি কীভাবে এটি বাস্তবায়ন করব?
স্ট্যাক ওভারফ্লো নীচে একটি subversion সংস্করণ নম্বর আছে:
এসএনএন সংশোধন: 679
আমি আমার .NET Web Site/Application
, উইন্ডোজ ফর্ম, ডাব্লুপিডি প্রকল্প / সমাধানগুলির সাথে এই জাতীয় স্বয়ংক্রিয় সংস্করণ ব্যবহার করতে চাই ।
আমি কীভাবে এটি বাস্তবায়ন করব?
উত্তর:
দেখে মনে হচ্ছে জেফ ক্রডকন্ট্রোল.এনইটি পডকাস্ট ট্রান্সক্রিপ্টগুলির মাধ্যমে কিছু লিফিংয়ের উপর ভিত্তি করে ব্যবহার করছে । উত্স নিয়ন্ত্রণ থেকে উত্পাদনে এটি স্বয়ংক্রিয় স্থাপনার ক্ষমতা রয়েছে বলে মনে হয়। সন্নিবেশ ঘটছে যেখানে এটি হতে পারে?
আমরা আমাদের স্বয়ংক্রিয় বিল্ডগুলির জন্য xUnit.net এর সাথে এটি করি । আমরা ব্যবহার করি CruiseControl.net
(এবং টিমসিটি চেষ্টা করছি)। অবিচ্ছিন্ন একীকরণের জন্য আমরা যে এমএস বিল্ড টাস্কটি চালাচ্ছি তা স্বয়ংক্রিয়ভাবে আমাদের জন্য বিল্ড নম্বর পরিবর্তন করে, ফলস্বরূপ বিল্ড জিপ ফাইলটি ডিএলএল এবং এএসইসগুলির একটি যথাযথ সংস্করণযুক্ত সেট থাকে।
আমাদের এমএসবিল্ড ফাইলটিতে একটি ডিএলএল এর জন্য ইউজিংটাস্ক রেফারেন্স রয়েছে যা নিয়মিত এক্সপ্রেশন প্রতিস্থাপন করে: (এমএস-পিএল লাইসেন্সের আওতাধীন আপনাকেও এই ডিএলএল ব্যবহার করতে স্বাগত জানাই)
<ইউজিং টাস্ক সমাবেশফিল = "তৃতীয় পক্ষ art কোডপ্লেক্স.এমএস বিল্ডটাস্কস.ডিএল" TaskName = "CodePlex.MSBuildTasks.RegexReplace" />
এর পরে, আমরা বিল্ড নম্বরটি বের করি, যা সিআই সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে সরবরাহ করা হয়। আপনি চাইলে আপনার উত্স নিয়ন্ত্রণ সরবরাহকারীর উত্স পুনর্বিবেচনা নম্বর সরবরাহ করতেও পেতে পারেন তবে আমরা দেখতে পেয়েছি সিআই সিস্টেমে বিল্ডটি আরও কার্যকর ছিল, কারণ কেবলমাত্র সিআই বিল্ড সংখ্যার দ্বারা ইন্টিগ্রেশন ফলাফলগুলি দেখতে পাবে না এটি একটি সরবরাহও করে পুনর্নির্মাণ (গুলি) -এ ফিরে লিঙ্ক করুন যা বিল্ডে অন্তর্ভুক্ত ছিল।
<! - ক্যাসকেডিং একটি বিল্ড নম্বর -> খুঁজে পাওয়ার চেষ্টা করে <সম্পত্তি গোষ্ঠী শর্ত = "'$ (বিল্ডনম্বার)' == ''"> <বিল্ড নাম্বার> B (বিল্ড_বিম্ব) </ বিল্ডবার্বার> </PropertyGroup> <সম্পত্তি গোষ্ঠী শর্ত = "'$ (বিল্ডনম্বার)' == ''"> <বিল্ড নাম্বার> $ (সিসনেটবেল) </ বিল্ডবার্বার> </PropertyGroup> <সম্পত্তি গোষ্ঠী শর্ত = "'$ (বিল্ডনম্বার)' == ''"> <বিল্ড নাম্বার> 0 <বিল্ডবার্বার> </PropertyGroup>
(আমরা BUILD_NUMBER চেষ্টা করি যা টিমসিটি থেকে, তারপরে সিসনেটবেল, যা সিসি নেট থেকে আসে এবং যদি না উপস্থিত থাকে তবে আমরা ডিফল্টে 0 এ চলে যাই, যাতে আমরা স্বয়ংক্রিয়ভাবে বিল্ড স্ক্রিপ্টটি ম্যানুয়ালি পরীক্ষা করতে পারি))
এরপরে, আমাদের একটি টাস্ক রয়েছে যা আমাদের সমস্ত প্রকল্পের সাথে সংযুক্ত একটি গ্লোবালঅ্যাস্পেলারআইএনফো ফাইলগুলিতে বিল্ড নম্বর সেট করে:
<লক্ষ্য নাম = "সেট ভার্সন নাম্বার"> <রিজেক্সেরপ্লেস প্যাটার্ন = 'এসেম্বলি ভার্সন \ ("(\ d + \। \ D + \। \ D +) \। \ D +" \)' প্রতিস্থাপন = 'এসেম্বলি ভার্সন ("$ 1। Build (বিল্ডনিবার)"))' ফাইলগুলি = 'গ্লোবালঅ্যাস্পেইশনআইনফো.কম' /> <এক্সিকিউট কমান্ড = "বৈশিষ্ট্য -r xunit.installer \ App.manifest" /> </target>
এটি অ্যাসেম্বলি ভার্সন বৈশিষ্ট্যটি সন্ধান করে এবং abcBuildNumber এর সাথে abcd সংস্করণ নম্বরটি প্রতিস্থাপন করে। আমরা সাধারণত নির্মাতা সংখ্যার প্রথম তিনটি অংশ স্থির করে গাছটিতে চেক করা উত্সটি ছেড়ে দেব এবং চতুর্থটি শূন্যে (ফে, আজ এটি 1.0.2.0)।
আপনার বিল্ড প্রক্রিয়ায়, নিশ্চিত করুন যে সেটভারশন নাম্বার টাস্কটি আপনার বিল্ড কার্যের আগে রয়েছে। শেষে, আমরা আমাদের জিপ টাস্কটি বিল্ড ফলাফলগুলি জিপ আপ করতে ব্যবহার করি যাতে প্রতিটি স্বয়ংক্রিয় বিল্ডের জন্য বাইনারিগুলির ইতিহাস থাকে।
আপনি আপনার কোডের যে কোনও জায়গায় নিম্নলিখিতগুলি যুক্ত করে এটি করতে পারেন
$Id:$
সুতরাং উদাহরণস্বরূপ @ জেফ করেছেন:
<div id="svnrevision">svn revision: $Id:$</div>
এবং সার্ভারে চেক করা হলে বর্তমান সংশোধন নম্বর সহ $ আইডি: replaced প্রতিস্থাপন করা হয়েছে। আমি এই রেফারেন্সটিও পেয়েছি ।
এছাড়াও রয়েছে $ তারিখ: $ , $ রেভ: $ , ision সংশোধন: $ $
আপনি যদি ব্যবহার করছেন ASP.Net MVC
(স্ট্যাকওভারফ্লো যেমন করে) তবে আমি কীভাবে স্বয়ংক্রিয়ভাবে পেতে এবং সর্বশেষ এসভিএন সংশোধন প্রদর্শন করতে পারি তার জন্য 3-পদক্ষেপ গাইড অনুসরণ করার জন্য একটি সহজ লিখেছি । গাইডটি আমার কাছে এই প্রশ্নটিই ভেবে অনুপ্রাণিত হয়েছিল! : ও)
@ বালুন আপনি যদি কচ্ছপ এসভিএন ব্যবহার করছেন তবে আপনি প্যাকেজযুক্ত সাবডব্লিউসিআরআইভ প্রোগ্রামটি ব্যবহার করতে পারেন । এটি একটি কার্যকরী অনুলিপি অনুসন্ধান করে এবং আপনাকে কেবলমাত্র সর্বোচ্চ সংশোধন নম্বর বলে number স্বীকার করা যায় যে এটি কোনও সার্ভার-সাইড সমস্যার কাছে ক্লায়েন্ট-সাইড অ্যাপ্রোচ বলে মনে হচ্ছে তবে এটি যেহেতু এটি একটি দুর্দান্ত কমান্ড লাইন প্রোগ্রাম, আপনি এটির আউটপুট মোটামুটি সহজেই ক্যাপচার করতে সক্ষম হবেন।
$rev
এবং অন্যদের মতো এটি পৃথক ফাইলগুলির জন্য সংশোধন, সুতরাং ফাইলটি পরিবর্তন না করা হলে এগুলি পরিবর্তন হবে না। ওয়েবপৃষ্ঠায় নম্বরটি (সম্ভবত, আমি এখানে ধরে নিচ্ছি) পুরো প্রকল্পের জন্য এসএনএন পুনর্বিবেচনা নম্বর। এটি ফাইলের সংশোধনগুলির চেয়ে পৃথক, যা অন্যরা দেখিয়েছে।
এই ক্ষেত্রে আমি ধরে নিয়েছি যে সিসিএনইটি প্রকল্পের সংশোধন নম্বরটি টানছে এবং সেই পৃষ্ঠাটি দিয়ে ওয়েবপৃষ্ঠার একটি অংশ পুনরায় লিখছে। যে কোনও সিআই সলিউশন এটি করতে সক্ষম হতে হবে, সিসিএনইটি এবং টিমসিটি দিয়ে নিজেকে সেট আপ করুন (যদিও ওয়েবপৃষ্ঠাগুলি নয়, তবে স্থাপনার / সমাবেশের সংস্করণগুলির স্বয়ংক্রিয় সংস্করণ)।
আপনার এটি করার জন্য, এটির সমর্থন করে এমন একটি সিআই সমাধান ব্যবহার করুন বা আপনার সংস্করণটি সংরক্ষণের জন্য বিল্ড প্রক্রিয়া (এমএসবিল্ড / ন্যান্ট) ব্যবহার করুন এবং এটি "স্থাপনার" আগে ফাইলগুলিতে লিখুন।
@ ব্র্যাডউইলসনের উত্তরে যুক্ত করতে: "আপনি চাইলে আপনার উত্স নিয়ন্ত্রণ সরবরাহকারীর উত্স পুনর্বিবেচনা নম্বর সরবরাহ করতেও পারেন"
সাবভারশন এবং এমএস বিল্ডকে সংযুক্ত করতে: এমএসবিল্ড কমিউনিটি টাস্ক প্রকল্প