چگونه برنامه setup بسازیم (قسمت اول)

احتمالا از این مقاله بسیار استقبال خواهید كرد! بحث نحوه ایجاد یك پرو‍ژه Setup یا همان برنامه نصب برای یك برنامه هم بسیار جذاب است و هم این که دانستن آن برای یك برنامه‌نویس لازم و ضروری است.
دوشنبه، 24 مرداد 1390
تخمین زمان مطالعه:
موارد بیشتر برای شما
 چگونه برنامه setup بسازیم (قسمت اول)

چگونه برنامه setup بسازیم (قسمت اول)
چگونه برنامه setup بسازیم (قسمت اول)


 





 
در مقاله بعد به توضیح بقیه موارد و همچنین نحوه ایجاد برنامه نصب با استفاده از ClickOnce خواهیم پرداخت.

مقدمه
 

برنامه نصب به پروژه ما شكل و شمایلی زیبا می‌دهد و در مرحله پایانی پروژه، كار را تكمیل می‌كند و برنامه ما را به برنامه‌ای کامل و تمام‌عیار تبدیل می‌نماید. برنامه نصب كار انتقال پروژه از دستگاه خودمان به كامپیوتر كاربر را سهل و آسان می‌كند و به آن نظم خاصی می‌بخشد. Setup همانند نمای یك ساختمان است كه بعد از اتمام ساخت، جلوه آن را متحول می‌كند. امیدواریم از این مقاله بیشترین بهره را برای ایجاد برنامه‌های نصب در پروژه‌های خود ببرید.

برنامه Setup چیست؟
 

برنامه Setup برنامه‌ای است كه پروژه تولید شده ما را به یك پروژه قابل نصب روی دستگاه كاربر تبدیل می‌كند. این برنامه شامل فایل EXE پروژه ما و تمامی فایل‌های مورد نیازی است كه برنامه ما در هنگام اجرا شدن و در حین اجرا به آنها نیازمند است: فایل‌هایی از قبیل فونت‌های خاص، فایل‌های منابع (Resource)، فایل‌های كتابخانه‌ای خاص برنامه ما و غیره.
برنامه نصب امكانات زیادی از قبیل ثبت مواردی در رجیستری در هنگام نصب و قرار دادن آیكون برنامه در منوی استارت و غیره را برای استقرار پروژه روی دیگر کامپیوترها فراهم می‌آورد و بخش‌های مختلف برنامه را به صورت منظم در جایگاه‌های خاصی كه ما تعیین می‌كنیم، قرار می‌دهد. بدون آنكه نیاز باشد ما به عنوان تولید كننده پروژه، كوچك‌ترین كاری روی كامپیوتر كاربر انجام دهیم.
تصور كنید بدون امكان ایجاد برنامه‌های نصب چه اتفاقی می‌افتاد؟ آن گاه برای اجرای پروژه روی دستگاه كاربر، برنامه‌نویس مجبور بود فایل EXE برنامه را به همراه كلیه فایل‌های مورد نیاز آن در یك فولدر قرار داده و آن را در اختیار كاربر قرار دهد و از او بخواهد تغییرات لازم را در رجیستری انجام دهد و فایل‌های مورد نظر را در مکان‌های خاص کپی کند. همچنین عزل برنامه (Uninstall) نیز به کاری زمان‌بر و طاقت‌فرسا تبدیل می‌شد.
در این حالت بسیاری از اختیارات برنامه‌نویس از او سلب می‌شد. چرا كه دیگر برنامه‌نویس قادر نبود فایل‌های اجرایی برنامه را به طور اتوماتیك جزو پوشه‌های برنامه موجود در ProgramFiles و یا هر جای مهم دیگر در دستگاه مقصد قرار دهد. در برخی موارد نیز مجبور می‌شد به طور دستی فونت‌هایی را در كامپیوتر کاربر نصب كند. اما با وجود برنامه‌های نصب، كار برنامه‌نویس و تولیدكنندگان نرم‌افزار در انتقال پروژه به كاربر بسیار آسان شده و دست آنها نیز در ترتیب نصب در دستگاه کاربران بسیار بازتر است.

فناوری‌های Setup
 

تا پیش از سال 2005، شركت مایكروسافت یك فناوری به نام Microsoft Installer (MSI) داشت که امكان نصب برنامه‌ها را فراهم می‌کرد. این فناوری‌ بسیار قدرتمند است و تقریبا هر كاری از قبیل پخش فایل صوتی یا تصویری در هنگام نصب و بسیاری كارهای دلخواه دیگر را می‌توان توسط آن انجام داد. اما باید در نظر داشت كه این فناوری‌ از توابع API استفاده می‌كند و بنابراین كار با آن مشكل است و لازم است روی این توابع تسلط داشته باشیم.
اما ویژوال استودیو یك نوع پروژه به نام SetupProject در اختیار برنامه‌نویسان می‌گذارد كه توسط آن می‌توان برنامه نصب ایجاد كرد. این نوع پروژه از جنس MSI است و تنها از بخشی از امکانات آن برای ایجاد برنامه‌های نصب استفاده می‌کند. با استفاده از آن، می‌توان برنامه‌های نصب ساده و با امكانات كم را در مدت زمان كوتاه و به سهولت ساخت. این نوع پروژه امكانات ابتدایی مورد نیاز یك برنامه‌نویس را در اختیار او قرار می‌دهد، اما برای كسانی كه می‌خواهند یك برنامه نصب پیشرفته بسازند، توصیه می‌شود از برنامه معروف InstallShield استفاده كنند.
پروژه Setup موجود در ویژوال استودیو نیز راه حلی مناسب برای برخی برنامه‌نویسان است. از امكانات جالب‌ آن می‌توان به این موضوع اشاره کرد که نسبت به نسخه برنامه هوشمند عمل می‌كند. به این معنی كه اگر كاربر قبلا یك نسخه قدیمی‌تر از برنامه را روی سیستم خود نصب كرده باشد، هنگام نصب نسخه جدید، برنامه نصب‌ آن را تشخیص داده و به كاربر پیغام می‌دهد تا ابتدا نسخه قدیمی را حذف نماید و سپس نسخه جدید را نصب کند. اما این پروژه نقاط ضعفی نیز دارد؛ مثلا قبل از اجرای نصب برنامه حتما باید دات‌نت روی دستگاه کاربر نصب شده باشد و در غیر این صورت برنامه نصب‌ عمل نخواهد كرد. عیب بزرگ دیگر آن این است كه اگر به طور مثال پروژه ما برای یك سازمان بزرگ با تعداد زیادی كاربر نوشته شده باشد، با هر تغییر در كد، باید برنامه تغییر یافته روی تك‌تك كامپیوترهای سازمان مجددا نصب شود که این كاری زمان‌بر و طاقت‌فرساست.
مهم‌تر آنكه اگر به هر دلیل فراموش شود برنامه جدید روی كامپیوتر اشخاص نصب شود، این افراد با نسخه قدیمی كار خواهند كرد و برنامه آنها هیچ‌گاه از وجود نسخه جدید مطلع نخواهد شد.
این بود كه شركت مایكروسافت در سال 2005 فناوری‌ جدید برنامه‌های نصب خود را با نام ClickOnce ارایه كرد. همانطور كه از نام این فناوری‌ پیداست، نحوه كار با آن بسیار آسان است و یكی از دلایل استقبال کاربران نیز همین سهولت استفاده از آن است. البته Click Once بسیاری از قابلیت‌های MSI را ندارد، اما به دلیل برخورداری از امكاناتی جدید و سهولت كار، در مدت زمان كوتاهی كه به دنیای كامپیوتر راه پیدا كرده توجه بسیاری را به خود جلب كرده است و به نظر می‌رسد سرانجام جانشین MSI خواهد شد.
ClickOnce این امكان را برای برنامه‌نویس فراهم می‌آورد كه در هنگام نصب ابتدا ارتباط با اینترنت و یا اینترانت کنترل شود، سپس برنامه اجرا شود و در غیر این صورت مانع از نصب برنامه شود. این حالت در زمانی مفید است كه برنامه ما از یك XML Web Service در اینترنت یا شبكه محلی استفاده کند.
از دیگر امكانات بسیار مفید این فناوری‌ آن است كه می‌توان یك آدرس فیزیكی روی دستگاه محلی و یا آدرس FTP یا آدرس اینترنتی را مشخص كرد تا برنامه قبل از هر بار اجرا، ابتدا به آن جا مراجعه كرده و اگر نسخه جدیدی موجود بود، به طور خودکار آن را دریافت و نصب کند.

از كجا باید شروع كرد؟
 

در این شماره، به نحوه ایجاد برنامه نصب با استفاده از فناوری‌ MSI می‌پردازیم و Setup Project دات‌نت را بررسی می‌کنیم. همانطور كه قبلا' اشاره شد، برای این كار از یك نوع پروژه تحت دات‌نت به نام «Setup Project» استفاده می‌كنیم. این پروژه باید به پروژه‌های برنامه ما در داخل Solution اضافه شود. هنگامی كه می‌خواهیم در ویژوال استودیو یك پروژه به Solution خود اضافه كنیم، در پنجره Add New Project در بخش Project Types یك شاخه به نام Other Project Types وجود دارد كه از زیرشاخه‌های آن Setup And Deployment است.با انتخاب این زیرشاخه در قسمت Templates انواع پروژه‌های نصب قابل مشاهده خواهند بود كه پروژه Setup Project همان پروژه مورد نظر ماست (شكل 1). با اضافه كردن این پروژه به داخل Solution برنامه و با دوبار كلیك روی آن، پنجره‌ای که در شکل 2 نمایش داده شده است، مشاهده خواهد شد. با انتخاب پروژه نصب در داخل Solution در بالای پنجره
Solution Explorer دکمه‌هایی ظاهر می‌شود (شكل 3). با كلیك روی هر یك از این دکمه‌ها یك پنجره باز می‌شود كه كار خاصی را به عهده دارد. به این پنجره‌ها View یا نما گفته می‌شود. در داخل هر View تنظیمات مربوط به یكی از مراحل Setup انجام می‌گیرد. نماهای موجود در ویژوال استودیو عبارتند از موارد زیر كه به ترتیب به آنها می‌پردازیم.
File System Editor
Registry Editor
File Types Editor
User Interface Editor
Custom Actions Editor
Launch Conditions Editor

چگونه برنامه setup بسازیم (قسمت اول)
شکل 1
 

چگونه برنامه setup بسازیم (قسمت اول)
شکل 2
 

چگونه برنامه setup بسازیم (قسمت اول)
شکل 3
 

File System Editor
 

در حالت پیش‌فرض، با ایجاد یك پروژه نصب، پنجره مربوط به این نما نمایان خواهد شد (شکل 4). این نما مهم‌ترین نما در نماهای موجود است. در این نما به طور پیش‌فرض 3 زیرشاخه مشاهده می‌شود:
Application Folder
User’s Desktop
User’s Programs Menu
هر یک از این زیرشاخه‌ها به یكی از پوشه‌های دستگاه كاربر اشاره دارد. Application Folder فولدری است كه برنامه‌نویس می‌خواهد برنامه اصلی در كامپیوتر كاربر در آن جای بگیرد كه به طور پیش‌فرض C:\Program Files است. User’s Desktop اشاره به دسکتاپ كاربر دارد كه آدرس آن در Profile كاربر قرار دارد. معمولا' یك Shortcut از فایل اجرایی برنامه روی دسکتاپ كاربر گذاشته می‌شود. User’s Program Menu نیز به فولدر Programs در منوی Start اشاره می‌كند.

چگونه برنامه setup بسازیم (قسمت اول)
شکل 4
 

هر فایلی كه در این فولدرها قرار دهیم، در هنگام نصب برنامه در كامپیوتر كاربر در محل‌هایی كه ذكر شد، كپی می‌شوند. حال اگر بخواهیم به غیر از فولدرهای موجود، در آدرس‌های دیگری نیز فایل‌هایی را كپی کنیم، می‌توان با كلیك راست روی صفحه و انتخاب منوی Add Special Folder این كار را انجام داد. در این منو بسیاری از فولدرهای دیگر كه هر یك مربوط به محلی از كامپیوتر كاربر است وجود دارد كه توضیح آنها از حوصله این مقاله خارج است. به هر حال با اضافه کردن هر یك از این فولدر‌ها به File System می‌توان فایل‌های مورد نظر خود را در آنها قرار دهید.
به طور معمول فایل اجرایی برنامه‌امان (كه پس از Build كردن پروژه در فولدر برنامه و در فولدر Debug داخل فولدر Bin قرار می‌گیرد) را به Application Folder افزوده و یك Shortcut از آن را در User’s Desktop اضافه می‌كنیم كه در مقاله شماره بعدی به توضیح كامل آن خواهیم پرداخت.

Registry Editor
 

این نما به ما اجازه می‌دهد تا بتوانیم درون رجیستری كامپیوتر كاربر تغییراتی را اعمال كنیم. همانطور كه در مقاله رجیستری نیز به آن اشاره شد، كار با رجیستری و دست‌كاری آن ممكن است باعث صدمه به ویندوز شود، لذا كار با آن مستلزم آشنایی كامل با رجیستری است.
با انتخاب این نما تمامی ساختار رجیستری به شما نشان داده خواهند شد. می‌توان با كلیك راست روی هر یك و انتخاب گزینه New زیرشاخه مورد نظر را در آن ایجاد کرد. تمامی این تغییرات در هنگام نصب در رجیستری كامپیوتر كاربر و در محل‌های تعیین شده اعمال می‌شوند.

File Types Editor
 

در این قسمت می‌توان تعیین كرد كه بعد از نصب برنامه كدام‌یك از پسوندها به برنامه ما وابسته شوند؛ به این معنی كه اگر کاربر روی فایلی با پسوند مشخص ‌شده در این قسمت کلیک کرد، برنامه ما اجرا شده و آن فایل را باز کند. همچنین در این نما می‌توان تعیین كرد كه آیكون پسوندهای تعیین شده به شكل مورد نظر ما تغییر نماید. به طور مثال با نصب برنامه آفیس روی یك كامپیوتر، با اجرای هر فایل با پسوند .doc یا .docx آن فایل تحت برنامه Word اجرا می‌شود ضمن اینكه آیكون مربوط به این نوع فایل‌ها نیز به آیكون تعریف شده در این برنامه تغییر می‌كند.
با انتخاب این نما یك ریشه با نام File Types On Target Machine ایجاد خواهد شد. با كلیك راست روی آن و انتخاب گزینه Add File Type می‌توان یك پسوند به آن اضافه کرد (شکل 5). ابتدا باید پسوند را به همراه علامت '.' وارد کنید (مثلا .xyz یا .abc). سپس می‌توان با كلیك روی این پسوند و مراجعه به پنجره Properties برای پسوند مورد نظر آیكون تعیین كرده و از طریق مشخصه ‍Command و با انتخاب فایل اجرایی برنامه از داخل Application Folder تعیین کنید كه با اجرای هر فایل با این پسوند، چه برنامه‌ای اجرا شود.

چگونه برنامه setup بسازیم (قسمت اول)
شکل 5
 

User Interface Editor
 

همانطور كه می‌دانید برنامه نصب به صورت یك ویزارد عمل می‌كند. در این نما این امكان در اختیار برنامه‌نویس قرار داده می‌شود كه پنجره‌های مختلف این ویزارد را ویرایش کند. در این نما 2 درخت مشاهده می‌شود: یكی مربوط به ویزارد زمان نصب توسط كاربران عادی که Install نام دارد و دیگری مربوط به نصب برنامه توسط Administrator كه Administrative Install نام دارد. در هر یك از این درخت‌ها 3 زیرشاخه مشترك دیده می‌شود كه مربوط به زمان و مراحل مختلف نصب برنامه‌اند و در زیر هر یک از مراحل، پنجره‌های نمایش داده شده قابل دسترسی هستند. با انتخاب هر یک از این پنجره‌ها و مراجعه به بخش Properties می‌توان برخی از خصیصه‌های آنها را تغییر داده یا پنجره‌ای را حذف کنیم و یا با كلیك راست روی هر مرحله و انتخاب گزینه Add Dialog یك پنجره دلخواه به آن مرحله اضافه كنیم.
پنجره‌های موجود در برنامه ایجاد Setup در دات‌نت محدود و ثابت بوده و قدرت چندانی ندارند. اما توسط برنامه Install Shield خودمان می‌توانیم پنجره‌های دلخواه و با خصیصه‌های زیاد بسازیم.
پس از اتمام عملیات مورد نظر روی پروژه نصب، در پنجره Solution Explorer كلیك راست كرده و آن را Build می‌كنیم. با این كار 2 فایل در آدرس برنامه روی هارددیسك در داخل پوشه مربوط به پروژه نصب و در پوشه Debug درون پوشه Bin ایجاد می‌شوند. یكی با پسوند MSI است كه همان فایل نصب برنامه بوده و فایل دیگر نیز با پسوند EXE است كه آن هم فایل MSI را اجرا می‌كند. این دو همان فایل‌هایی هستند كه در اختیار كاربر قرار می‌دهیم تا توسط آنها بتواند برنامه ما را روی كامپیوتر خود نصب كند.
منبع:تبيان زنجان
ارسال توسط کاربر محترم سایت : mohamadaminsh




 



نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط