در مراحل قبلی نحوه ایجاد فایل configuration و فایل نصب sql server و همچنین ایجاد setup برای نرم افزاری که باید در سیستم مشتری نصب و اجرا گردد را برای شما کاربران فکر بکر آموزش دادیم در این بخش به نحوه نصب پیش نیاز های برنامه مانند sql server ، crystal report ، .net framework و نصب نرم افزار اصلی در سیستم مشتری خواهیم پرداخت.
هدف ما ایجاد برنامه نصب بهمرا پیشنیازهای آن به گونه ای که نرم افزار های پیشنیاز بصورت مخفی بر روی سیستم مقصد نصب شود. چرا که بسیاری از افراد توانایی نصب نرم افزارهایی مانند sql server را ندارند لذا ما در این آموزش بصورت گام به گام نحوه ایجاد برنامه نصب بهمراه پیشنیازهای آن را با استفاده از visual sudio تشریح خواهیم نمود.
برای شروع یک پروژه با زبان c# بنام SetupRequirements ایجاد کنید.
فرم خود را با توجه به شکل زیر طراحی نمایید.
برای اینکه برنامه نصب ما نیازی به نسخه ای از .net framework نداشته باشد رو پروژه کلیک راست نمایید و گزینه properties را انتخاب نمایید و در پنجره باز شده از قسمت Application مقدار Target framework را بر روی نسخه .Net Framework2.0 قرار دهید. و برنامه را یکبار build نمایید.
برای اینکه پیشنیازهای نرم افزار ما بر روی سیستم مشتری نصب شود ابتدا وارد پوشه debug پروژه خود شوید .
ابتدا یک پوشه بنام SetupRequirements درون پوشه debug پروژه قرار دهید.
و فایل نصبی .net framework خود و فایل setup نرم افزار خود را که در مرحله قبلی توسط installshield ایجاد کردید را در این مسیر قرار دهید
در این آموز فقط به نصب نسخه های 64 بیتی این نرم افزار ها خواهیم پرداخت لذا درون پوشه SetupRequirements یک پوشه بنام 64 ایجاد نمایید
درون پوشه 64 یک پوشه بنام Sql ایجاد کنید سپس فایل نصب sql که هنگام ایجاد فایل configuration توسط نرم افزار extract شده بود را بهمراه فایل configuration که ایجاد کردید را در این قسمت قرار دهید.
یک پوشه دیگر بنام CrystalReport را نیز درون پوشه 64 ایجاد کنید و فایل نصب crystal report را درون آن کپی نمایید.
اکنون فایل های نصب پیشنیاز نرم افزار بهمراه فایل نصب نرم افزار درون پوشه Debug برنامه قرار داده ایم. وقت ان رسیده است تا در رویداد کلیک دکمه نصب پروژه کدهای لازم جهت نصب این نرم افزارها را بنویسیم.
بنابراین کدهای زیر را درون رویداد کلیک دکمه نصب بنویسید.
private void btnInstall_Click(object sender, EventArgs e)
{
if (Application.StartupPath.Contains(" "))
{
MessageBox.Show("همه فاصله ها را از نام پوشه ها حذف کنید" + "\n" + Application.StartupPath);
return;
}
btnInstall.Enabled = false;
string os = "64";
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;//جهت مخفی شدن پنجره command prompt
startInfo.FileName = "cmd.exe";
//نصب کریستال ریپورت
lblresult.Text = "نرم افزار کریستال ریپورت در حال نصب می باشد ...";
startInfo.Arguments = @"/C " + Application.StartupPath + "\\SetupRequirement\\" + os + "\\CrystalReport\\CRRuntime.msi " + "/qn IACCEPTSQLLOCALDBLICENSETERMS=YES";
process.StartInfo = startInfo;
startInfo.Verb = "runas";
process.Start();
process.WaitForExit();
lblcr.ForeColor = Color.Green;
//نصب دات نت
lblresult.Text = "نرم افزار دات نت فریم ورک در حال نصب می باشد ...";
startInfo.Arguments = @"/C " + Application.StartupPath + "\\SetupRequirement\\DotNet46.exe " + "/q /norestart IACCEPTSQLLOCALDBLICENSETERMS=YES";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
//
lbldn.ForeColor = Color.Green;
//نصب اسکیوال
lblresult.Text = "نرم افزار sql server در حال نصب می باشد ...";
startInfo.Arguments = @"/C " + Application.StartupPath + "\\SetupRequirement\\" + os + "\\Sql\\SETUP.exe " + "/HIDECONSOLE " + "/ConfigurationFile=" + '"' + Application.StartupPath + "\\Prerequisite\\" + os + "\\Sql\\ConfigurationFile.ini" + '"';
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
lblsq.ForeColor = Color.Green;
//
Process.Start(Application.StartupPath + "\\SetupRequirement\\setup.exe");
//بجای نام setup.exe
//نام فایل نصب خودتان را بنویسید
this.Close();
}
نکته ای که باید به آن توجه کنید این است که فاصله های ایجاد شده در قسمت startInfo.Arguments=... را نباید حذف نمایید.
اکنون فایل نصب شما اماده میباشد برای نصب نرم افزار محتویات پوشه debug برنامه را روی سیستم مقصد کپی کنید سپس آنرا اجرا نمایید.