چگونه برنامه 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 را اجرا می‌کند. این دو همان فایل‌هایی هستند که در اختیار کاربر قرار می‌دهیم تا توسط آنها بتواند برنامه ما را روی کامپیوتر خود نصب کند.
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد