পণ্যের উপাদানটির অভ্যন্তরে আপগ্রেড উপাদানটি যথাযথ ক্রিয়াকলাপের সাথে মিলিয়ে অ্যাকশনটি আপনার পরে আনইনস্টল সম্পাদন করবে। আপনি মুছে ফেলতে চান এমন সমস্ত পণ্যের আপগ্রেড কোডগুলি তালিকাভুক্ত করার বিষয়ে নিশ্চিত হন।
<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="00000000-0000-0000-0000-000000000000">
<UpgradeVersion Minimum="1.0.0.0" Maximum="1.0.5.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>
মনে রাখবেন, আপনি যদি নিজের বিল্ডগুলি সম্পর্কে সতর্ক হন তবে আপনি লোককে দুর্ঘটনাক্রমে আপনার পণ্যের একটি নতুন সংস্করণ ইনস্টল করা থেকে বিরত রাখতে পারেন। সর্বোচ্চ ক্ষেত্রটি এটাই That's যখন আমরা ইনস্টলারগুলি তৈরি করি, তখন আমরা নির্মিত সংস্করণটির জন্য আপগ্রেড ভার্সন সর্বাধিক সেট করি তবে এই দৃশ্যটি রোধ করতে ইনক্লুডম্যাক্সিমামাম = "না" "
আপনার সরানএক্সিস্টিংপ্রডাক্টসের সময়সূচী সম্পর্কিত পছন্দগুলি রয়েছে। আমি এটিকে ইনস্টলফিনালাইজের পরে সময় নির্ধারণ করতে পছন্দ করি (অন্যরা যেমন প্রস্তাবিত হয় তেমন ইনস্টলইনটিয়ালাইজডের চেয়ে):
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize"></RemoveExistingProducts>
</InstallExecuteSequence>
এটি নতুন ফাইল এবং রেজিস্ট্রি কী অনুলিপি করা না হওয়া অবধি পণ্যের পূর্ববর্তী সংস্করণটি ইনস্টল করে। এটি আমার পুরানো সংস্করণ থেকে নতুনটিতে ডেটা স্থানান্তর করতে দেয় (উদাহরণস্বরূপ, আপনি রেজিস্ট্রি থেকে কোনও এক্সএমএল ফাইলে ব্যবহারকারীর পছন্দসইগুলির সঞ্চয়স্থান স্যুইচ করেছেন, তবে আপনি বিনয়ী হতে এবং সেটিংগুলি মাইগ্রেট করতে চান)। এই মাইগ্রেশনটি ইনস্টলফাইনালাইজের ঠিক আগে মুলতুবি কাস্টম অ্যাকশনে করা হয়।
আরেকটি সুবিধা হ'ল দক্ষতা: যদি অপরিবর্তিত ফাইল থাকে তবে উইন্ডোজ ইনস্টলার ইনস্টলফিনালাইজের পরে সময় নির্ধারণের সময় সেগুলি আবার অনুলিপি করতে বিরক্ত করে না। আপনি যদি ইনস্টলইনটায়ালাইজ হওয়ার পরে নির্ধারিত হন তবে পূর্ববর্তী সংস্করণটি প্রথমে সম্পূর্ণভাবে মুছে ফেলা হবে, এবং তারপরে নতুন সংস্করণ ইনস্টল করা হবে। এর ফলে অপ্রয়োজনীয় মোছা এবং ফাইলগুলি পুনরায় তোলা হয়।
অন্যান্য সময়সূচী বিকল্পগুলির জন্য, এমএসডিএন-এ সরানএক্সেস্টিংপ্রডাক্টস সহায়তা বিষয় দেখুন। এই সপ্তাহে, লিঙ্কটি হ'ল: http://msdn.microsoft.com/en-us/library/aa371197.aspx