نحوه اجرا کردن action های سفارشی و ارتقاء با استفاده از Visual Studio Installer
دوشنبه 19 تیر 1396در این مقاله قصد داریم که نحوه ساختن یک برنامه نصب را به همراه نحوه نوشتن action سفارشی آن به شما به صورت قدم به قدم آموزش بدهیم.
ویژال استودیو installer projects را به منظور ساده سازی گسترش برنامه ارائه داده است.برای داشتن Visual Studio installer project type همگام با نسخه ویژال استودیو ، مطمئن شوید نسخه مربوط به سیستم خودتان را نصب کرده اید.
برای دانلود Visual Studio Installer همگام با ویژال استودیو 2015 از این لینک استفاده کنید.
انواع Visual Studio Installer
5 نوع قالب installer در حال حاضر دردسترس است:
Setup Project
Web Setup Project
Merge Module Project
Setup Wizard
CAB Project
نوع Setup Project در حوزه بحث مقاله ما قرار دارد و اینکه ما در این مقاله بر روی افزودن action سفارشی و ارتقاء آن تمرکز خواهیم داشت.
تنظیمات اصلی نصب Action ها
یک پروژه با نام SampleInstaller و با استفاده از قالب “Setup Project” ایجاد کنید.هدف نهایی از پروژه SampleInstaller گسترش باینری های ساخته شده با استفاده از Windows project است.از این رو ، پروژه دیگری به نام SampleWinService از نوع windows servic ایجاد میکنیم.
باینری های تولید شده از پروژه SampleWinService باید برای سیستم موردنظر با استفاده از پروژه SampleInstaller گسترش یابد.
بر روی پروژه SampleInstaller راست کلیک کنید> (افزودن)Add> (خروجی پروژه) Project Output
از دیالوگ باز شده Add Project Output Group ، پروژه مورد نظر را در قسمت پروژه انتخاب کنید که برای شما برنامه ریزی شده است تا باینری را بفرستید.در زیر list box دیالوگ ، گزینه “Primary output”را برای اینکه به Installer بگویید فقط باید Dll ها و EXE ها را از پروژه مشخص شده برای گسترش آن بردارد و کلید Ok را بزنید.
حالا ، SampleInstaller را انتخاب کنیدو بر روی تب Properties که در سمت راست پروژه قرار دارد ، کلیک کنید.نمای زیر دیده می شود:
حالا ، همانطوریکه در توضیحات زمانی که یک فیلد را انتخاب می کنید ذکر شده است ، فیلدها را به درستی پر کنید.به فیلد target platform دقت کنید و مطمئن شوید که فیلد مورد نظر بدرستی پر شده باشد.اگر میخواهید این فایل نصبی را روی دستگاه 64 بیتی نصب کنید پس باید برنامه 64 بیتی باشد ، که به منظور اینکار گزینه x64 را به جای x86 انتخاب کنید.
UpgradeCode یک GUID (شناسه جهانی منحصر به فرد) مهم است که برای شناسایی گروهی از محصولات از این شماره استفاده میشود.زمانیکه نسخه شماره محصولات تغییر می کند ، UpgradeCodeتغییر نمیکند ولی ProductCodeتغییر میکند.
که این به کاربر اجازه میدهد تا کاربر عمیات ارتقاء محصول را انجام دهد.از این رو ، اگر قصد عملیات ارتقاء را دارید ، مطمئن شوید که ProductCode هنگام تغییر نسخه تغییر پیدا میکند.
اینکار را می توان با کلیک کردن بر روی Yes زمانیکه از شما سوال زیر پرسیده می شود انجام داد.
و اگر نمیخواهید اینکار را انجام بدهید بر روی گزینه No کلیک کنید.
تنظیمات Action های سفارشی
Custom Action ها اولین موردی هستند که باید در کدهای سفارشی پروژه اصلی (SampleWinService ) فعال شوند تا در زمان اجرا عمل شوند.
برای تنظیمات آن:
بر روی پروژه SampleInstaller راست کلیک کنید> Custom Actions<View
در اینجا 4 مرحله اصلی installer action ها بیان میشود:
Commit ، Rollback ، Install و Uninstall.
اگر می خواهید هر کدام از installer action ها را سفارشی کنید ، Action را انتخاب کنید > گزینه Add Custom Action را انتخاب کنید... و project و نوع خروجی آن را در جایی که کد کنترلر کننده Action سفارشی (custom action handler code) نوشته شده است انتخاب کنید.
به عنوان نمونه ، به طور پیشفرض ، پروژه SampleWinService بر روی سیستم مورد نظر (target machine) شروع به نصب سرویس نمیکند.همچنین ما میخواهیم زمانیکه محصول حذف شد سرویس متوقف شود.
اگر میخواهید به این اهداف برسید نیاز است که کد سفارشی آن را در پروژه SampleWinService با استفاده از کلاس مخصوص و متدهایی مانند زیر بنویسید:
متد OnAfterInstall از کلاس ProjectInstaller را بازنویسی کنید و عملیات شروع را فعال کنید تا windows service به طور خودکار بعد از نصب شروع شود.به طور مشابه ، متد OnBeforeUninstall را برای متوقف کردن سرویس در زمان حذف آن بازنویسی کنید.
ارتقاء (Upgrade)
ارتقاء روند مورد نیاز نصب یا حذف برنامه است که ویژگی ها یا کامپوننت یا باینری ها یا فایلیست که در هنگام نصب مورد نیاز هستند را بررسی میکند.
برای انجام عملیات ارتقا با استفاده از Visual Studio installer ، باید این مراحل را انجام دهید:
1)شماره نسخه installer را از properties آن تغییر دهید.
2)هنگامیکه از شما در ارتباط با تغییر product code پرسیده می شود گزینه Yes را انتخاب کنید
3)UpgradeCode را تغییر ندهید
4) شماره نسخه assembly که (EXE/DLL) از قبل نصب شده است را تغییر دهید ، بنابراین installer متوجه میشود که چه assembly برای عمل ارتقاء باید جایگزین شود.
5)کنترل کننده مناسب CustomAction را در متد OnBeforeInstall برای حذف سرویس موجود و مورد نیاز این نسخه بنویسید.
6)installer را با version number اصلاح شده ، ProductCode و assembly version بسازید و نصب کنید.
- VisualStudio
- 2k بازدید
- 0 تشکر