Invoke MsDeploy and MsBuild on Powershell

سلام
قبلا توی مطلب “چالش های انتشار خودکار نرم افزارهای جامع سازمانی” گفته بودم که شاید بعدا بیشتر در این مورد بنویسم. متاسفانه این روزها اصلا فرصت نمیشه، اما سعی میکنم اگه یه مطلب خیلی مفید بود حد اقل اشاره ای به اون بکنم.

مایکروسافت برای بیلد و انتشار نرم افزار، ابزارهای جداگانه ای داره که سعی کرده توی tfs و در قسمت ساخت بیلد های اتوماتیک، اونارو یکجا مورد استفاده قرار بده. اما هنوز کمبودهایی داره و توی پروژه های جامع سازمانی پاسخگوی تمام نیاز ها نیست یا به دردسرش نمی ارزه که ازش استفاده کنین.

بعضی مواقع ترجیح بر اینه که از دستورات خط فرمان ویندوز استفاده کنیم. که میتونیم از  command-prompt یا powershell استفاده کنیم. از اونجایی که powershell بسیار پیشرفته تر از command-prompt هست، ترجیح بر استفاده از powershell یا دستورات cmdlet هست.
دستوراتی مثل start یا stop یا install و uninstall کردن یک ویندوز سرویس، کپی کردن فایل و کارهای را میشه از طریق powershell انجام داد.

وقتی powershell را انتخاب میکنیم، دیگه کار جالبی نیست که یک سری کارها را با powershell و یک سری دیگه را با cmd انجام بدیم و اصلا منطقی هم نیست.
MsBuild وMsDeploy دو تا از ابزارهایی هستن که توی Automatic-Deployment زیاد ازش استفاده میشه. به طور پیش فرض، این برنامه ها از طریق command-prompt اجرا میشن. با یک جستجوی ساده توی اینترنت میشه راهی پیدا کرد که این برنامه ها را از طریق powershell اجرا کرد.

برای راحت تر کردن این کار میتونیم از Moduleهای powershell استفاده کنیم.
یک ماژول برای اجرای MsBuild توی این آدرس پیدا کردم.  https://invokemsbuild.codeplex.com/
اما برای MsDeploy ماژولی پیدا نشد که خودم دست به کار شدم یکی نوشتم که از این آدرس میتونین دریافت کنین. https://github.com/omids20m/Invoke-MsDeploy-PowerShell-Module

امیدوارم این مطلب مورد توجه شما دوستان قرار گرفته باشه 🙂