مقدمه
در مقاله قبل با برنامههاي Setup آشنا شديم و انواع فناوريهاي نصب را نام برده و هريك را تا حدودي براي شما شرح داديم و چگونگي توليد برنامههاي نصب با استفاده از فناوري MSI را نيز آموختيم. در آن مقاله، برخي مفاهيم برنامه نصب با فناوري MSI از قبيل Viewها آموزش داده شد و در مورد نماهاي موجود صحبت شد. در مقاله بعدي نيز به فناوري Click Once خواهيم پرداخت.
Custom Actions Editor
اين نما به ما اجازه ميدهد تا در هنگام نصب برنامه و در هر مرحله از آن برخي كارهاي سفارشي و اعمال دلخواه خود را بگنجانيم. اگر روي اين نما كليك کنيم، شكل 1 را مشاهده خواهيم کرد:
![چگونه برنامه setup بسازيم (قسمت 2)](/userfiles/Article/1390/09/03/23751.JPG)
شكل 1
اگر به شكل 1 دقت كنيد ميبينيد در اين نما چهار پوشه با نامهاي زير وجود دارد كه هر يك مربوط به يكي از مراحل نصب هستند:
1- Install
2- Commit
3- RollBack
4- Uninstall
با كليك راست روي هر كدام از اين پوشهها منويي باز ميشود كه در آن دو گزينه به نامهاي Add Custom Action و Paste وجود دارد. با انتخاب گزينه Add Custom Action، يك پنجره باز ميشود كه در داخل آن فولدرهاي اصلي دستگاه مقصد كه فايلهاي برنامه ما در هنگام نصب در داخل آنها قرار داده ميشوند، نمايش داده خواهند شد. مثلا User’s Desktop نشاندهنده دسکتاپ کامپيوتر کاربر است. با ورود به هر كدام و كليك روي دكمه Add File كه در كنار اين پنجره قرار دارد، ميتوانيد فايل دلخواه خود را در آن فولدر قرار دهيد. اين فايل در هنگام نصب در فولدر تعيين شده قرار خواهد گرفت. همچنين از طريق گزينه Paste ميتوان فايلي را كه از روي هاردديسك كپي كردهايم، در فولدر مورد نظر قرار دهيم (شکل 2).
![چگونه برنامه setup بسازيم (قسمت 2)](/userfiles/Article/1390/09/03/23751.JPG)
شكل 2
پوشه Install مربوط به كل زمان نصب است و در آن ميتوانيم مشخص كنيم كه در اين زمان چه كارهاي اضافي كه در نماهاي ديگر امكان آنها وجود نداشت، انجام شود. کارهايي که در اين پوشه تعيين ميشود در موقع نصب قطعا انجام خواهد شد. پوشه Commit در هنگام نصب مربوط به زماني است كه عمليات نصب به درستي و بدون اشكال انجام شده و به پايان رسيده است. شما در اين پوشه مشخص ميكنيد كه اگر نصب برنامه با موفقيت انجام شد، چه کاري اجرا شود. در واقع هر Action اضافه شده به اين قسمت، در صورت اتمام موفقيتآميز نصب اجرا ميشود.
در بخش RollBack اعمالي را تعريف ميكنيم كه اگر عمليات نصب با اشكال روبهرو شد و برنامه ما به درستي روي دستگاه مقصد نصب نشد، بايد اجرا شوند.
همچنين در قسمت Uninstall نيز ميتوانيم اعمالي يا برنامههايي را مشخص كنيم كه در هنگامي كه كاربر برنامه را عزل كرد انجام و اجرا شوند.
$Launch Conditions Editors
آخرين نمايي که بررسي ميکنيم Launch Conditions Editor است. در اين نما شرايط قبل از نصب تعيين ميشود، به اين ترتيب که مشخص ميكنيم پيش از شروع نصب برنامه روي دستگاه كاربر، بايد چه شرايطي مهيا باشد و چه پيشنيازهايي فراهم شده باشد تا برنامه بتواند نصب شود. براي مثال ميتوان تعيين کرد كه اگر داتنت روي دستگاه كاربر نباشد، برنامه ما نصب نشود. هر چيزي كه در اين قسمت قرار بگيرد، پيش از عمليات اصلي نصب كنترل ميشود و در صورتي که رعايت نشده باشد، عمليات برنامه نصب متوقف خواهد شد. اگر روي اين نما كليك کنيد، شكل 3 را مشاهده خواهيد كرد.
![چگونه برنامه setup بسازيم (قسمت 2)](/userfiles/Article/1390/09/03/23751.JPG)
شكل 3
در اين نما يك درخت با ريشه Requirements On Target Machine وجود دارد كه داراي دو زيرشاخه به نامهاي Search Target Machine و Launch Conditions است. با كليك راست روي اولين زيرشاخه پنجرهاي شامل سه گزينه پديدار ميشود كه اولين گزينه آن Add File Search است. با انتخاب اين گزينه، ميتوان فايلي را از روي هاردديسك به اين زير شاخه اضافه کرد. با اين کار، در هنگام نصب وجود اين فايل در دستگاه مقصد كنترل ميشود و در صورتي که فايل وجود داشته باشد، عمليات نصب ادامه مييابد. با افزودن هر فايل به اين زيرشاخه و كليك روي آن در پنجره Properties تعدادي خصيصه نمايش داده ميشوند که يکي از آنها Folder است. توسط اين خصيصه مشخص ميكنيم كه برنامه نصب، فايل مورد نظر را بايد در كدام فولدر دستگاه مقصد جستجو كند.
گزينه دوم كليك راست، Add Registry Search نام دارد و با آن ميتوان وجود يك بخش در رجيستري ويندوز را كنترل كرد. در اين قسمت ميتوان يك آيتم اضافه کرد و Property آن را تنظيم نمود كه اين خصيصهها به آدرس آيتم در رجيستري، كليد مورد نظر در آن ريشه و مقدار كليد اشاره ميکنند. در مقاله رجيستري که در شماره 49 چاپ شد، به تفصيل به اين موضوع پرداختهايم.
گزينه آخر در كليك راست Add Windows Installer Search است و توسط آن ميتوان وجود يك نسخه خاص از Windows Installer را براي شروع عمليات نصب كنترل کرد. در اين مورد نيز ميتوان با استفاده از خصيصهها شماره نسخه مورد نظر را تعيين كرد.
با كليك راست روي زيرشاخه دوم (Launch Condition) يك گزينه با نام
Add Launch Condition نمايان خواهد شد كه توسط آن ميتوانيم شرط جديدي را تعريف كنيم كه وجود يك برنامه يا نسخهاي از يك برنامه را در آدرسي اينترنتي كنترل كند. آدرس را توسط خصيصه InstallUrl مشخص ميكنيم.
اگر روي ريشه درخت كليك راست كنيم، علاوه بر مشاهده تمامي گزينهها در يك منو ميتوانيم با استفاده از گزينه Add .Net Framework Launch Condition وجود نسخه خاصي از داتنت را روي دستگاه مقصد جستجو كنيم. با انتخاب اين گزينه به طور اتوماتيك يك شرط به زيرشاخه Launch Conditions با نام .Net Framework اضافه ميشود. با استفاده از خصيصه InstallUrl آن ميشود آدرس سايتي را كه ميتوان داتنت را از آن دريافت و نصب كرد، تعيين نمود. اگر داتنت روي دستگاه مقصد وجود نداشته باشد، برنامه نصب ميتواند به اين آدرس رجوع کرده و داتنت را دريافت و نصب کند و سپس به نصب برنامه اصلي ادامه دهد. همچنين در شبكههاي محلي ميتوان يك آدرس از شبكه را كه داتنت در آن محل موجود است، در اين خصيصه قرار داد.
توسط خصيصه Message نيز ميتوانيد پيغامي را مشخص کنيد که براي کاربر نمايش داده شود. در اين خصيصه، پيامهاي از پيش تعريف شدهاي وجود دارد كه هر کدام کد مخصوص خود را دارند. براي مثال، براي عدم وجود داتنت پيغام از پيش تعريف شدهاي در خصيصه Message به صورت كد [VSDNETMSG] نمايش داده ميشود كه ميتوان آن را تغيير داده و پيغام مورد نظر خود را به جاي آن قرار داد. در پايان با استفاده از خصيصه Version ميتوانيد نسخه مورد نظر داتنت را نيز مشخص كنيد.
بعد از اتمام ساخت و ايجاد برنامه نصب ميتوانيد جلوه بهتري به برنامه نصب بدهيد. اگر روي پروژه برنامه نصب كليك كنيد، در پنجره Properties خصيصههايي را مشاهده خواهيد كرد که برخي از آنها در اين جا توضيح داده ميشود:
خصيصه AddRemoveProgramIcon مشخصكننده آيكون برنامه ما در پنجره Add/Remove Prorams در Control Panel است. در خصيصه Author نيز معمولا نام برنامهنويس را مينويسند. در خصيصه Deion نيز توضيحاتي در مورد برنامه قرار ميدهند. خصيصه DetectNewInstalledVersion به اين منظور است كه قبل از شروع عمليات نصب، نسخه برنامه را كنترل كند و ببيند كه آيا نسخه جديدتري از نسخه در حال نصب روي دستگاه قبلا نصب شده است يا خير و اگر چنين است و نسخه برنامهاي كه در حال نصب است از نسخه برنامهاي كه قبلا نصب شده قديميتر است، عمليات نصب متوقف شود. بنابراين بهتر است مقدار اين خصيصه هميشه برابر با True باشد.
اگر خصيصه InstallAllUsers برابر با True باشد، تمامي تنظيمات انجام شده در هنگام نصب براي تمامي كاربران دستگاه اعمال خواهد شد.
خصيصه Localization براي آن است كه برنامه نصب با زبان تنظيم شده براي کامپيوتر مقصد اجرا شود که توضيح آن از حوصله اين مقاله خارج است.
خصيصههاي Manufacturer و ManufacturerUrl نام و آدرس سايت شركت توليدكننده نرمافزار را نشان ميدهند. خصيصه ProductCode يك كد از نوع GUID است كه توسط پروژه Setup توليد ميشود و نبايد آن را تغيير داد. كد GUID يك كد منحصر به فرد است كه با الگوريتمهاي خاصي كه به زمان و مكان وابستهاند، توليد ميشود. اين كد نشانگر نسخه برنامه است و با هر بار تغيير در برنامه و Build كردن آن تغيير ميكند و با اين كد است كه برنامه متوجه ميشود نسخه جديدي از برنامه براي نصب موجود است. خصيصه ProductName نام پروژه Setup است كه بايد يك نام مناسب براي آن انتخاب شود.
خصيصه RemovePreviousVersion نيز بهتر است برابر با True باشد، چرا كه در اين صورت در هنگام نصب اگر نسخه قديميتري از برنامه قبلا روي دستگاه نصب شده باشد، برنامه نصب ابتدا آن را پاك كرده و سپس نسخه جديد را نصب ميكند. هر عنواني كه در خصيصه Title ذكر كنيم، در بالاي پنجرههاي نصب در هنگام عمليات نصب نمايش داده ميشود.
خصيصه Version نيز براي تعيين نسخه برنامه است كه با هر بار تغيير در برنامه بسته به ميزان تغييرات خودمان به مقدار اين خصيصه به ميزان يك واحد يا يكصدم واحد اضافه ميكنيم که اين با ProductCode که توسط خود برنامه توليد ميشود، تفاوت دارد.
در اينجا شرح بخشهاي پروژه نصب با استفاده از فناوري MSI به پايان رسيد. در انتها بايد بگوييم که با اتمام يك پروژه نصب بايد روي پروژه در پنجره Solution Explorer كليك راست كرده و آن را Build کنيم. با اين كار يك فايل EXE در فولدري از هاردديسك كه برنامه ما در آن ايجاد و ذخيره شده است و فولدر مربوط به پروژه نصب و فولدر Bin داخل آن ايجاد ميشود كه با ارايه اين فايل به كاربر، وي ميتواند فايل را روي دستگاه خود كپي كند و با اجراي آن برنامه ما را روي دستگاه خود نصب كند.
منبع:تبيان زنجان ارسال توسط کاربر محترم سايت : mohamadaminsh