# مباحث متفرقه برنامه نویسی > تولید و توسعه برنامه های Setup و Install > آموزش: طریقه ساخت setup با خود vs.net

## MAHDIACTION

*بسم الله الرحمن الرحيم* 
*يه صحبت كوتاه*
سلام به دوستان عزيزي كه از دور و نزديك اين متن رو دارند مي خونند اميدوارم در سايه حق تعالي اميدوار با پشتكار، سر بلند ، موفق و سر زنده باشند،‌تلاش اينجانب و دوستان بر اين هست كه مطالب و تجربيات و رفرنس هاي موجود را به بهترين و ساده ترين راه منتشر كنند.اميد وارم شما نيز به جمع ما بپيونديد. درانتها بيش از هرچيز منتظر سوالات ،انتقادات و تشكر شما از عزيزاني كه به عشق *يگانه برنامه نويس  عالم * كارمي كنند هستيم.



*شما هم مي تونيد در يك حركت خارق العاده با ما باشيد*
 

تشكر ويژه از دوستاني كه اين بنده را در اين تايپيك ياري كرده اند:
Hossein-Khoshseyar   و   Sharif Lotfi و  b.mahsa 


*مراحل ساختن setup توسط Vs.net* 

بعد از اینکه پروژه خودتون رو تو vs.net ساختید (برنامه کاربردی ) حالا نیاز دارید که یه setup برای همین برنامه بسازید . از منوی file->add->new Project کلیک کنید
Other Project type->setup Project
در فرم new project add بر روی setup project کلیک کنید


بعد از Ok کردن می بینید که به پروژه شما در بخش solution explorer پروژه setup اضافه می شود.


بر روی پروژه setup راست کلیک کنید می بینید که منوی باز شده گویای همه چیز است.
شما می تونید هر بخشی را که دوست دارید ویرایش ،اضافه یا حذف کنید .
من به مهمترین Item ها می پردازم که بعد از ساخت setup دچار مشکل نشید.

*قراردادن خروجی برنامه کاربردی شما در setup*

بعد از راست کلیک کردن بر روی پروژه setup از زیر منوی view بر روی File System کلیک کنید.
شما وارد بخش file system می شوید که حاوی سه پوشه هست روی پوشه Application Folder کلیک کنید تا وارد آن شوید


برای آنکه خروجی پروژه تان در Setup قرار گیرد، در جایی خالی راست کلیک کرده از زیر منوی add-> Project Output کلیک کنید.


در منوی Add Project Output بر روی Primery Output کلیک کنید ،حال بعد از تجزیه وتحلیل پروژه شما dllها و فایل اجرایی شما به صورت شکل زیر به پروژه اضافه می شود.



*ساختن Shortcut برنامه بر روي Desktop و All Programs كاربر*
براي اينكه Setup شما بتونه روي Desktop و All Programs كاربر ، Shortcut بسازه.مراحل زير رو بايد انجام بديد.
بر روي فايل Primery Output From داخل پوشه Application Folder راست كليك كنيد روي آيتم Create Shortcut From Primery Output كليك كنيد.
حال Shortcut ساخته شده رو وارد پوشه User's Desktop در پنجره سمت چپ نماييد.
همين مراحل رو براي Programs File تكرار كنيد.


*نصب برنامه هاي مورد نياز پروژه* 
حالا دقت کنید مهمترین بخش در setup سازی بخش نصب برنامه های جانبی مورد نیاز برنامه شماست .
برای اضافه کردن برنامه های مورد نیاز برنامه کاربردی شما باید روی پروژه STUP کلیک راست کرده و بروی گزینه propertiesکلیک کنید.ودر فرم باز شده بر رویprerequisites دکمه کلیک کرده و در فرم بعدی موارد مورد نیازتان را تیک زده و بر روی prerequisites from the same location as my application download کلیک کنید.




*تغيير متن فرم خوش آمد گويي*

اول روي پروژه راست كليك كنيد از زير منوي Add روي User InterFace كليك كنيد.

در پنجره سمت راست روي فرم Welcome راست كليك كرده و روي Peropertis Windows كليك كنيد.

در پنجره Properties مي تونيد ايتم هاي مورد نظرتون رو عوض كنيد.



*اضافه كردن يك فرم به Setup*

قصد داريم فرم Customer Information‌رو به Setup خودمون اضافه كنيم براي اين كار اول در پنجره سمت راست در زير گره Install روي Start راست كليك كرده و روي ايتم Add Dialogكليك كنيد در پنجره باز شده روي فرم Customer Information كليك كنيد تا به اين گره اضافه شود.

**

حالا پرو‍ژه تون رو Bulid كنيد،بايد پروژه بدونه نقص Build بشه اگه Error داد مشكل از اين mergemod.dll هست كه بايد تو ويندوزتون رجستر كنيد.
مراحل رجستر كردن تو اين آدرس هست (راحته)
http://support.microsoft.com/kb/329214
دوست عزيز يه سري هم به اين سايت بزن
http://aspalliance.com/622_StepbySte...ment_Project.1
حالا پروژه تان را build کنید.


*طريقه قراردادن سريال براي Setup* 
البته دوستان دقت داشته باشيد كه قراردادن قالب يا فرمي كه سريال دريافت كنه يه جورايي فرماليته هست ولي با تكنيك هايي كه بعد ها گفته خواهد شد ميشه يه سريال مطمئن داشت.

بعد اضافه كردن Customer Information‌ در پنجره Properties بايد ShowSerialNumber را برابر True نماييد مانند شكل زير.


نكته بسيار مهم در اين پنجره SerialNumberTemplate است كه قالب دريافت سريال را به شما نشان مي دهد <%%%%%%%%-###>
در اين قالب كاراكتر هاي # و % و - را مي بينيد كه هريك نشان دهنده ورودي خاصي است.
خط تيره جعبه متن هايي را نشان مي دهد كه در ان بايد سريال وارد شود.
مثلا در قالب بالا ما دو جعبه متن براي دريافت سريال داريم كه اولي بايد 3 كاراكتر در آن وارد شود و دومي 7 كاراكتر سريال در آن وارد مي شود.

اينسالر كاراكتر# را ناديده مي گيرد،ولي اساس تست سريال بر روي كاراكتر هاي % است كه جمع مقادير وارد شده به جاي اين كاراكتر ها تقسيم بر 7 بايد صفر شود.

مثلا اگر در اين قالب سريال :1111111-111 را وارد نماييد مراحل نصب انجام مي شود

مثال :<###%%-####%-%#%-###>
اين قالب براي در يافت سريال 4 جعبه متن را نشان مي دهد . 
و يكي از سريال هاي ان اين مي باشد.
11000-10000-301-000
0=7/(3+1+1+1+1)
جمع اين اعداد 21 يا 28 و...
هم شود سريال درست است.
اگر صفر بود سريال درست است.



قبل از اينكه وارد بخش حرفه اي مقاله بشيم جاداره كه از دوست پيگير مون آقاي Hossein-Khoshseyar تشكر به عمل بياد شايد پيگيري هاي ايشون نبود چنين مقاله اي توي تايپيك گنجانده نمي شد. 
گفتيم كه قرار دادن سريال براي Setup به صورت عادي در Vs.net كاري الكي هست و هر فردي مي تونه سريال شما رو حدس بزنه براي اينكه سريالي قوي و حرفه اي داشته باشيد ، بايد به ادامه آموزش دقت كنيد. 
*حرفه اي :اضافه كردن* *Dll* *به* *Setup* *كه صحت سريال هاي* *Setup* *را تاييد مي كند*

Orca ابزاري است كه شركت مايكروسافت براي ويرايش دقيق تر و حرفه اي ستاپ ها ارائه كرده ،اين برنامه معمولا داخل پوشه Microsoft SDKs هست، يا كلمه Orca رو داخل درايو C جستجو كنيد .
براي ساخت Dll ما به Vs.net C++‎‎‎‎‎‎‎‎‎‎‎‎ نياز داريم دوستاني كه مي خواهند Dll بسازند با مراحل ايجاد پروژه Dll آگاه هستند و دوستان ديگر مي توانند از پروژه نمونه استفاده كنند مهم بكار گيري كد زير درون Dll مي باشد كه دوستان حرفه اي مي توانند بنا به خواست نياز خود آن را تغيير دهند.
براي انكه سريعتر به اصل مطلب برسيم دوستان نمونه پروژه ساختن Dll رو از زمينه بردارند. و از روي آن كاركنند.

پروژه ساخت dll نمونه تست شده (ضميمه)


#include "windows.h" 
#include "msi.h"
#include "msiquery.h" 
extern "C" _declspec(dllexport) UINT __stdcall VerifyPID(MSIHANDLE hInstall);
TCHAR* GetPIDValue(TCHAR*); 
extern "C" UINT __stdcall VerifyPID(MSIHANDLE hInstall)
{
UINT    nRetVal = 0;
UINT    uiMsiRc;
TCHAR   szPidKey[MAX_PATH];
TCHAR   szSourceDir[MAX_PATH];
TCHAR*  lpszPidValue;
DWORD   dwBuffer; 
dwBuffer = sizeof(szSourceDir)/sizeof(TCHAR); 
uiMsiRc = MsiGetProperty(hInstall, TEXT("SourceDir"), szSourceDir, &dwBuffer); 
if (ERROR_SUCCESS != uiMsiRc)
{
MessageBox(NULL, "Not able to retrieve the SourceDir property.  The setup may be corrupt.  Please contact Technical Support.", "Setup Error", MB_OK | MB_ICONEXCLAMATION);
return 0;
} 
lpszPidValue = GetPIDValue(szSourceDir);
dwBuffer = sizeof(szPidKey)/sizeof(TCHAR); 
uiMsiRc = MsiGetProperty(hInstall, TEXT("PIDKEY"), szPidKey, &dwBuffer); 
if (ERROR_SUCCESS != uiMsiRc)
{
MessageBox(NULL, "Not able to retrieve PIDKEY property.  The setup may be corrupt.  Please contact Technical Support.", "Setup Error", MB_OK | MB_ICONEXCLAMATION);
return 0;
} 
int str = lstrcmp(szPidKey, lpszPidValue); 
if (str == 0)
MsiSetProperty(hInstall, "PIDCHECK", "TRUE");
else
{
MsiSetProperty(hInstall, "PIDCHECK", "FALSE");
MessageBox(NULL, "Please enter the correct product registration code!", "Invalid Key", MB_OK | MB_ICONINFORMATION);
} 
return 0;
} 
TCHAR* GetPIDValue(TCHAR* lpszSourceDir)
{
     return "123 - 4567890";}

دقت كنيد كه اين DLL براي BUILD شدن نياز به تنظيماتي داردكه در ادامه توضيح مي دهيم.
از منوي PROJECT بر روي زير منوي PIDCheckDll در پنجره باز شده از سمت چپ رو گره C/C++‎‎‎‎‎‎‎‎‎‎‎‎ كليك كنيد از آيتم هاي اين گره بر روي GENERAL كليك كنيد و خاصيت Additional Include Directories را با مسير نصب Sdk در هاردتان مسير دهي كنيد.
مثلا c:\Program File \Microsoft Sdk \ include


**



از گره Linker بر روي ايتم Input كليك كنيد،درون خاصيت Additional Dependencies كلمه Msi.Lib را تايپ نماييد.





*چك كنيد كه خصوصيات شما در اين دو فرم شبيه تصوير باشد.*

*درباره سورس* *Dll*
تابع VerifyPID ابتدا توابع كتابخانه اي Msi رو براي دريافت سريال واردشده از طرف كاربر درون باكس PidKey فراخواني مي كند.يعني كاربر چه سريالي درون باكس وارد كرده است.
بعد سريال وارد شده را با سريال داخلي فايل مقايسه مي كند در صورت صحت داشت كلمه True را درون خصوصيت داخلي PIDCHECK يا در صورت اشتباه بودن كلمه False را درون اين خصوصيت قرار مي دهد طريق تعريف خصوصيتي مانند PIDCHECK را در ادامه توضيح مي دهيم با اين خصوصيت مي توانيد حدس بزنيم كه كاربر سريال را درست وارد كرده است تا به صفحه بعد Setup برويم.
*ساخت پروژه* *Setup* *مورد نظر*
يك پروژه ستاب براي خودتان بسازيد و در بخش user interface فرم *Customer Information* dialogرا اضافه كنيد .پروژه ساخت را Build نماييد.

*تغييرات حرفه اي در* *Setup* *ساخته شده و پشتيباني از سريال :*
*خلاصه مراحل:*
حال مي خواهيم فايل Msi ساخته شده توسط پرو‍ژه Setup را با استفاده از نرم افزار Orca (ساخت شركت مايكروسافت) ويرايش نماييم.
اول بايد فايل Dll را به فايل Setup اضافه كنيم ، فايل داخل Dll جا داده مي شودو نيازي نيست آن را همراه فايل Setup داشته باشيم.مرحله بعد ساخت يك Custom Action است كه وظيفه آن فراخواني توابع داخل Dll مي باشد ،كه بايد هنگامي كه برنامه Setup اجرا مي شود انجام گيرد. و بعد ما بايد يك متغيير Booleanايجاد كنيم كه مقادير خروجي از Custom Action در آن قرار گيرد.و در آخر يك شرط قرار مي دهيم كه در صورت True بودن مقدار متغيير به فرم بعدي Setup برويم.

*اضافه كردن فايل* *DLL* *به فايل* *Setup**:*
برنامه Orca را نصب كنيد ، اين برنامه در صورت نصب بودن Microsoft Sdk داخل درايو C شما موجود مي باشد.بعد از اجراي برنامه Orca فايل .Msi (دانلود)موجود در release يا Debuge خود را از طربرنامه باز نماييد() ، بعد از باز كردن اين فايل درون محيط نرم افزار در سمت چپ جدول هاي Setup شما كه مي توانيد تغيير دهيد و در سمت راست فيلد هاي اين جداول وجود دارد. 
بر روي جدول *Binary*كليك نماييد.بر روي يكي از ركوردهاي خالي دوبار كليك كنيد، يا از منوي Tables بر روي آيتم Add row كليك كنيد تا فرم مورد نظر باز شود،داخل فيلد *Name* كلمه*PIDCheckDll**را* *وارد كنيد*،بر روي فيلد *Data* كليك كنيد،و بر روي دكمه *Browse* كليك كنيد،فايل *Dll* را انتخاب كنيد و*Ok*نماييد.حال فايل Dll شما داخل فايل Msi گنجانده مي شود.

*اضافه كردن**:Custom Action*
جدل *Custom Action*انتخاب نماييد،و يك ركورد جديد ايجاد كنيد ، مقادير زير را در فرم باز شده وارد نماييد.
*Action*: *CheckPID*
*Type: 1*
*Source: PIDCheckDll*
*Target: _VerifyPID@4*داخل فيلد *Action* شما نامي براي اين*Custom action* انتخاب كرده ايد و در فيلد *Type* عدد يك نشان دهنده آن است كه اين *Custom action* از يك Dll مخفي شده *(همان* *Dll* *خودمان)*در حال استفاده است *،*فيلد*Source* يعني ما به اين *Dll* وصل شده ايم كه در مرحله اضافه كردن به خاطر داريد كه اين اسم را براي *Dll*وارد كرديم ، فيلد Target يعني كدام تابع را داخل اين Dll فراخواني كن.
*ايجاد و پيكر بندي خصوصيات مورد نياز:*
در اينجا ما بايد متغيير هاي داخلي را ايجاد كنيم كه شرط هاي اعتبار سنجي و بين فرم ها بر روي آن ها استوار است.
مثلا اول بايد خصوصيت *PIDCHECK*را ايجاد كنيم كه مقدار آن يا True يا False است و در Setup با استفاده از اين خصوصيت مي توانيم متوجه بشويم كه سريال درست است يا اشتباه.
جدول *Property*را انتخاب كنيد يك ركورد جديد ايجاد نماييد.و مقادير زير را در فرم باز شده وارد نماييد.*Property*: *PIDCHECK*
*Value: FALSE*حال بايد قالب دريافت سريال رو مشخص كنيم ، (يعني چندتا TextBox باشه )
توي اين آموزش ما خيال داريم كه قالب در يافت سريال از دو TextBox تشكليل شده باشه،مثلا4567890-123
براي داشتن چنين قالبي بايد داخل خصوصيت *PIDTemplate* مقدار <### - #######> رو وارد كنيد ، اگه PidTemplate رو نداريد امكان داره شما هنگام ساخت Setup فرم Customer Information‌رو اضافه نكرده ايد.هنگام اجراي فايل setup دو تا Text Box مي ايد كه اولي قادر به در يافت 3 عدد و دومين TextBox قادر به دريافت 7 عدد از ورودي مي باشد.
مقدار فيلد *CustomerInfoForm_ShowSerial*را برابر *1* قرار دهيد تاTextBox ها درون Setup به نمايش در بيايند،
*پيكربندي فرم ها*
جدول*Control*را باز كنيد،ركورد*CustomerInfoFormپيدا كنيد،حال ركوردي كه فيلد* *Control* آن برابر *SerialEdit* هست را پيدا كنيد،مقدار فيلد *Attribute*را برابر *3* قرار دهيد *،* *SerialLabel**و*همين اعمال را براي *SerialBodyText*انجام دهيد،
جدول*ControlEvent* انتخاب كنيد، از فيلد *Dialog*مقدار*CustomerInfoForm*را پيدا نماييد،حال ركوردي را پيدا كنيد كه فيلد *Control* آن برابر *NextButton**و* مقدار*Eventآن برابر ValidateProductID .*
مقدار فيلد *Event* را از *ValidateProductID* به *DoAction*تغيير دهيد و مقدار فيلد *Argument**‌*را از*{}به CheckPID*تغيير دهيد،
حال ركوردي را پيدا كنيدكه فيلد*Control* آن برابر *NextButton*و فيلد *Event* ان برابر *NewDialog* مي باشد *،* مقدار داخل فيلد *Condition* آن را پاك كرده و جمله زير را وارد كنيد. 
(PIDCHECK="TRUE") AND CustomerInfoForm_NextArgs<>"" AND CustomerInfoForm_ShowSerial<>""
منبع:
متن بالا ترجمه شده متن موجود در آدرس زير است .دوستان كمي و كاستي هايي وجود دارد كه اينجانب خوشحال مي شوم كه در جريان بگذاريد.

http://www.codeproject.com/KB/install/msinetserial.aspx




*طريقه ساخت شورتكات براي uninstall برنامه:*
دوستان متن زير به تلاش دوست عزيز  و كاربر فعال سايت  آقاي *Sharif Lotfi*  فراهم آمده كه جاداره به نوبه خودمون از اين دوست تشكر كنيم.آدرس پست ايشون براي تشكر
اگر با VB.Net كار مي كنين به اين صورت عمل كنين :
در بخش ساخت setup در فولدر user's programs menu يا هر جاي ديگه اي كه مي خواين يك shortcut جديد اضافه كنين با نام uninstall myProject (يا هر اسمي كه دوست دارين)
فايلي كه ازش shortcut مي سازين همون primary output هست (همون فايل اجرايي كه از مسير application folder مي ريم) همونطور كه مي بينين اين دقيقا همون فايلي هستش كه براي اجراي برنامه مون ازش استفاده مي كنيم.
روي shortcut جديدي كه ساختين راست كليك كنين و properties رو انتخاب كنين و اين تغييرات رو بدين:
مقدار گزينه Arguments رو برابر


```
/u=[ProductCode]
```

بذارين
نام و توضيحات Description مربوط به uninstall رو به دلخواه خودتون تغيير بدين .

حالادر ماژول Main كد زير رو بنويسين :
کد:

```

        Dim arguments As String() = Environment.GetCommandLineArgs()
        Dim myArgument As String()
        Dim myString As String
        For Each argument As String In arguments
            Dim myChar As Char() = {"="c}
            myArgument = argument.Split(myChar)
            myString = myArgument(0)

            If myString.ToLower() = "/u" Then
                Dim guid As String = myArgument(1)

                Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.System)
                Dim si As ProcessStartInfo
                si = New ProcessStartInfo(path + "\\msiexec.exe", "/i " + guid)
                Dim myProcess As Process
                myProcess = Process.Start(si)
                myProcess.Close()
                Application.Exit()
                End
            End If
        Next
```




*طریقه اضافه كردن نام و آيكون برنامه توي راست كليك در محيط اكسپلورر ويندوز* 

نويسنده متن: آقاي *Sharif Lotfi*  
براي تشكر از ايشون به پست ايشون مراجعه مي كنيم

اين هم روش اضافه كردن نام برنامه در راست كليك موس در محيط اكسپلورر ويندوز وقتي كه بخواهيم ويندوز به صورت اتوماتيك با استفاده از پسوند فايل برنامه باز كننده آنرا كه برنامه ماست تشخيص دهد :

روي پروژه ستاپ راست كليك كرده و گزينه ي view وسپس گزينه ي File Types رو انتخاب مي كنيد
در تب File Types روي آيتم File Types on target Machine راست كليك كرده و گزينه ي Add File Type رو كليك مي كنيم.
يك آيتم اضاقه مي شه با نام (New Document Type #1 (no extention
روي اين آيتم كليك كرده و در پنجره Properties در سمت راست مشخصات دلخواهتون رو تنظيم كنين
با فرض اينكه نام نرم افزار شما MySoftware و پسوند فايلهاي مخصوص نرم افزار شما m1.* باشه پيش مي ريم :
گزينه اول كه نام آيتم انتخاب شده است (مي تونه همون نام پيش فرض باشه)
گزينه دوم فايل اجرايي برنامه شماست . كه در محيط ساخت ستاپ اين فايل اجرايي همون Primary Output هستش كه اونو بايد انتخاب كنين و بعد از انتخاب جلوي اين گزينه عبارت
(Primary output from MySoftware(Active ديده خواهد شد . حواستون باشه كه منظورم فايل exeبرنامه نيست
گزينه سوم توضيح مربوط به نرم افزار شماست عبارتي كه اينجا مي نويسين در محيط ويندوز ديده ميشه مثلا بنويسين : MySoftware File يا هر عبارت توضيحي دلخواه
گزينه چهارم معرفي پسوند فايل مخصوص نرم افزار شماست كه بايد بدون نقطه معرفي بشه براي مثال شما مي نويسين m1
گزينه پنجم معرفي آيكون مخصوص فايلهاي m1 هستش با معرفي آيكون دلخواه شما در محيط اكسپلورر ويندوز فايلهاي با پسوند m1 با اين آيكون ديده ميشن
گزينه ششم رو بلد نيستم (پس به درد نمي خوره )
آيتم ساخته شده شما حالا اين شده :
(New Document Type #1 (m1
خوب ، تا اينجا مربوط بود به معرفي فايل با پسوند m1 به برنامه و شناختن اون
حالا مي ريم سراغ تعريف آيتمهايي كه موقع راست كليك در محيط اكسپلورر ويندوز بايد ديده بشن:
روي آيتمي كه ساختين (New Document Type #1 (m1 راست كليك كنين
گزينه Add Action رو انتخاب كنين
آيتم New Document Action #1 اضافه ميشه
روي اين آيتم كليك كرده و در پنجره Properties در سمت راست مشخصات دلخواهتون رو تنظيم كنين
گزينه اول Name عبارتي هست كه قراره شما در منوي راست كليك ماوس ببينيد مثلا اين عبارت
"Open with "MySoftware&
گزينه دوم رو برابر
کد HTML:
 "%1"
بذارين
براي گزينه سوم هم عبارت open رو بنويسين
و تمام
حالا بعد از ساخت كامل ستاپ و نصب برنامه مي تونين روي فايل با پسوند m1 راست كليك كنين و منوي اضافه شده رو ببينين .



*نمونه پروژه* 
اين هم يه پروژه نمونه براي دوستان تا مطالب رو بهتر و عملي تر ببينن
توي اين پروژه موارد زير رو داريم :
ساخت يك ديتاتيبل و ديتاگريد 
باز كردن و ذخيره كردن يك فايل با پسوند shs 
ساخت setup
ايجاد شورتكات براي uninstall
اضافه كردن نام برنامه در راست كليك ماوس در محيط اكسپلورر ويندوز
قابليت خواندن و باز كردن فايل با راست كليك روي فايل يا دابل كليك آيكون فايل
(دقت داشته باشين كه مراحل آخر در محيط ويژوال استوديو قابل دسترسي نيستن و بعد از ساخت ستاپ در محيط اكسپلورر و اجراي فايل ستاپ مي تونين اين قابليتها رو ببينين- يعني بعد از توسعه)

*دانلود پروژه*




*چگونه از پرتال بودن برنامه جلوگيري كنيم*
اگر دقت داشته باشيد برنامه شما بعد از نصب پك هاي مورد نياز خودش و اجراي صحيح روي سيستم كاربر به هر فردي كه حتي با كمترين اطلاعات مي تونه پك هاي مورد نياز فايل اجراييتون رو بدست بياره و فايل تون رو هر جاي ديگه نصب كنه.
براي جلوگيري از اين كار روش هاي مختلفي هست .
ولي يكي از كم هزينه ترين راه ها كار با رجستري هست كه كپي از نرم افزارتون رو تا حدي از اون جلوگيري مي كنه.
طريق Setup يه كليد توي رجستري بسازيد .مسيرش داخل تصوير مشخصه.





بعد داخل برنامه يا Form Load اولين فرم تون كد پايين رو بنويسيد.


 
IfMy.Computer.Registry.GetValue("HKEY_CURRENT_USER  \Software\My Software", "Run", Nothing) IsNothingThen
 
MsgBox("اين نسخه معتبر نمي باشد")
 
Close() 'خروج از نرم افزار
 
EndIf
 


*برچسب ها*
ساخت ستاپ با ويژوال دات نت ،طراحي ستاپ با ويژوال
ساخت ستاپ،ساخت Setup با Microsoft Visual Studio
ساخت Setup با Setup and Deployment
ساخت ستاپ با Vs.net

اگه سئوالی بود در خدمتم.
*به اميد خدا ادامه دارد.....*

----------


## ghasedak_zb

سلام 
ممنون از مطلب مفیدتون
من خواستم بدونم که چطور می تونم از برنامۀ نصب روی desktop  و همچنین در  start -all programs  
shortcut داشته باشم و ایکون مورد نظرم را برای آن ست کنم
ممنون می شم جوات بدید 
منتظرم

----------


## sara.f

> سلام 
> ممنون از مطلب مفیدتون
> من خواستم بدونم که چطور می تونم از برنامۀ نصب روی desktop  و همچنین در  start -all programs  
> shortcut داشته باشم و ایکون مورد نظرم را برای آن ست کنم
> ممنون می شم جوات بدید 
> منتظرم


سلام
در فایل  آموزشی پست اول، کامل همه مراحل  توضیح داده شده و به سوال شما هم در اون پاسخ داده میشه.

https://barnamenevis.org/showthread.php?t=192379

----------


## meri_rad

این ارور واسه چیه

----------


## Pr0grammer

> این ارور واسه چیه


کدوم Error؟!

----------


## Pr0grammer

این فایل آموزشی هم میتونه مفید باشه :
http://www.4shared.com/file/tGiB4qDj...r_Project.html

موفق باشید/

----------


## mehran5

سلام
من تو پروژه ام از  sql 2005 استفاده کردم.
می تونید همینجا بگید اگه بخوایم بانک مون به sql experss وصل بشه آیا از کد باید استفاده باید بکنیم و کجا باید ازش استفاده بشه ؟یا راه دیگری برای اتچ کردن  دیتا بیس به sql experss  هست؟1

----------


## MAHDIACTION

سلام 
دوست من شما اگه می خواید از sql express  تو پروژه تون استفاده کنید.نیازی به اتچ کردن بانک نیست فقط باید sqlconnection رو به شکل زیر بنویسید.
من معمولا داخل Debug  که فایل اجرایی برنامه هست یه پوشه به نام Bank می سازم و فایل بانک رو توی اون قرار میدم که از رشته زیر این کاملا مشخصه.
 Public objcon As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & Application.StartupPath & "\Bank\MainBank.mdf;Integrated Security=True;User Instance=True")

اگه سوالی بود در خدمتم

----------


## mehran5

منظورم این بود که فایل ستاپ برنامه رو می سازیم جالا برنامه رو روی کامپیوتر مقصد نصب می کنیم sqlexpressهم راه با برنامه اصلی برنامه نصب میشه .بانک برنامه همراه با فایلهای دیگه بر نامه کپی میشه ولی به sqlexpress اتچ نمی شه حالا چطوری به بانک اتچش کنیم؟

----------


## armin1100

من فايل setup  راكه در Vs2008 ساختم در ويندوز 7 مشكل داره؟ يعني سوالم اينه كه حتما بايد vs در ويندوز 7 نصب شده باشه و يا نيازي نيست يعني اگربا ويندوز اكس پي فايل ستاپ درست بكني در سون جواب ميده ؟

----------


## Persianality

سلام.
قسمتي كه گفتيد  Primary Output  انتخاب كنيم ،  واسه من هيچ گزينه اي وجود نداره؟
لطفا راهنمايي كنيد؟
ممنون

----------


## MAHDIACTION

> قسمتي كه گفتيد Primary Output انتخاب كنيم ، واسه من هيچ گزينه اي وجود نداره؟
> لطفا راهنمايي كنيد؟
> ممنون


سلام دوست من 

*بررسي مسئله* 

شما داخل Solution Explorer پرو‍ژه اي رو كه با Vsطراحي كرده ايد رو نداريد. 
اول پروژه طراحي شده رو باز كنيد 
حالا مراحل اضافه كردن Setup به پروژه Vs رو انجام بديد.

File->*Add*->new Project -> Other Project Types->Setup Project 

يه نكته كوچيك 
توي صفحه اول همين تايپيك، جايي كه تصوير كليك كردن روي Project Output قرار داره نگاهي به Soultion Explorer بندازيد مي بينيد كه يه پروژه به نام ProBooks روي Setup1 قرار داره اين همون پرو‍ژه اي هست كه مثلا مي خواهيم براش Setup بسازيم
اگه بازم موردي بود من در خدمتم.

----------


## hossein-khoshseyar

دوست عزیز ممنون از توضیحاتت 
خیلی خوب بود 
من قبلا همش با اینیستال شیلد کار می کردم. تا اینکه سر یه پروژه ای با اینیستال شیلد به مشکل خوردم و اومدم تو این تاپیک آموزش شما رو دیدم حالا با خود vs مشکلم حل شد
فقط می خواستم ببینم امکانش هست setup که درست  می کنیم به کم حرفه ای تر باشه 
مثلا موقع نصب حداقل یه اسم و اسم کمپانی بخوادو بعدش شماره سریال و ...
میشه با خود vs از این کارا هم کرد؟
پیشاپیش از جوابت ممنونم

----------


## MAHDIACTION

> فقط می خواستم ببینم امکانش هست setup که درست می کنیم به کم حرفه ای تر باشه 
> مثلا موقع نصب حداقل یه اسم و اسم کمپانی بخوادو بعدش شماره سریال و ...


سلام دوست من نكته بسيار عالي رو مطرح كرديد.
اين Setup ساز حرفه اي مثل Install Sheid نيست ولي خيلي قشنگ تا حد امكان نيازهاي پرو‍ژه رو بر آورده مي كنه.

يه سري به صفحه اول همين تاپيك بزن.


*سوالي بود ،در خدمتم.*

----------


## hossein-khoshseyar

دوست عزیز بازم ممنون از راهنماییت
یه سئوال دیگه 
از همین طریقی که گفتی می شه  موقع نصب سریال نامبر از کاربر خواست
اما مقداری که سریال نامبر موتونه داشته باشه رو از کجا می تونیم تعیین کنیم
با همون مقادیر پیش فرض خودش که می ریم سریال نامبر 00000000 رو قبول میکنه 
اما اگه بخوایم سریال نامبر رو خودمون تعیین کنیم باید چیکار کنیم؟
ممنون

----------


## MAHDIACTION

> از همين طريقي که گفتي مي شه موقع نصب سريال نامبر از کاربر خواست
> اما مقداري که سريال نامبر موتونه داشته باشه رو از کجا مي تونيم تعيين کنيم


سلام دوست من 

بعد اضافه كردن Customer Information‌ در پنجره Properties بايد ShowSerialNumber را برابر True نماييد مانند شكل زير.


نكته بسيار مهم در اين پنجره SerialNumberTemplate است كه قالب دريافت سريال را به شما نشان مي دهد <%%%%%%%%-###>
در اين قالب كاراكتر هاي # و % و - را مي بينيد كه هريك نشان دهنده ورودي خاصي است.
خط تيره جعبه متن هايي را نشان مي دهد كه در ان بايد سريال وارد شود.
مثلا در قالب بالا ما دو جعبه متن براي دريافت سريال داريم كه اولي بايد 3 كاراكتر در آن وارد شود و دومي 7 كاراكتر سريال در آن وارد مي شود.

اينسالر كاراكتر# را ناديده مي گيرد،ولي اساس تست سريال بر روي كاراكتر هاي % است كه جمع مقادير وارد شده به جاي اين كاراكتر ها تقسيم بر 7 بايد صفر شود.

مثلا اگر در اين قالب سريال :1111111-111 را وارد نماييد مراحل نصب انجام مي شود

مثال :<###%%-####%-%#%-###>
اين قالب براي در يافت سريال 4 جعبه متن را نشان مي دهد . 
و يكي از سريال هاي ان اين مي باشد.
11000-10000-301-000
0=7/(3+1+1+1+1)
جمع اين اعداد 21 يا 28 و...
هم شود سريال درست است.
اگر صفر بود سريال درست است.

منبع:
http://www.dreamincode.net/forums/to...ployment-work/
سوالي بود در خدمتم

----------


## hossein-khoshseyar

با سلام
ممنون از اینکه به سئوالهام جواب می دی
اما یه سئوال دیگه
این که گفتی خیلی بده که 
یعنی تصادفی میشه خیلی سریال رو بهش نصبت داد 
مثلا هر برنامه ای که با ویژوال استودیو پکیچ شده باشه اگه به جای سریال همش رو صفر بدی از این مرحله رد میشه و این خیلی بد هست
امکانش نیست که یه لیست از سریالها رو براش تعریف کرد که فقط اونا رو قیول کنه؟
یا یه چیز دیگه مثلا اینکه بشه تعیین کرد که مثلا رقم سوم سریال حتما "6" باشه یا هر چیز دیگه ای ؟ تا با این روش بشه مشکل فوق رو حل کرد
پیشاپیش ممنون
در ضمن لینک منبع که تو پست بالا گفتی مشکل داشت و صفحه ای لود نمی شد

----------


## MAHDIACTION

سلام دوست من 
آقا اينطوري ها هم كه، نيست Microsoft نسنجيده عمل نمي كنه .
البته مثال هاي زيادي براي ساخت سريال هست كه بايد كمي هم خودتون روش مانور بديد و هم بايد مثال هاي مشابه رو بينيد.

مثلا شما اين سريال رو هم مي تونيد وارد كنيد.كه ديگه حدس زدن سخته.

يه بار ديگه اين لينك رو نگاه كن،شايد جواب سوال شما اينجا باشه.
http://www.dreamincode.net/forums/to...eployment-work

جوابتون رو 4 شهريور مي بينم.

----------


## hossein-khoshseyar

> مثلا شما اين سريال رو هم مي تونيد وارد كنيد.كه ديگه حدس زدن سخته.
> 
> 
> .



سلام
کدوم سریال شما که چیزی ننوشتید؟

این لینکی که دادید الان باز میشه هنوز نخوندمش 
تازه می خوام برم بخونم 
فقط خودم که فکر می کنم اگه همون طوری که باشه که توی پستهای بالا گفتید سریال 0000000 باید به همه ست آپ ها بخوره 
چون مجموع همه اعداد صفر هست ! ؟
اگه این طور نیست . دلیلش چیه ؟

----------


## hossein-khoshseyar

> سلام دوست من 
> آقا اينطوري ها هم كه، نيست Microsoft نسنجيده عمل نمي كنه .
> .


با عرض سلام مجدد خدمت شما دوست عزیز
من لینکی که گذاشته بودید رو خوندم چندتا لینک هم از خود مایکروسافت و MSDN پیدا کردم و خوندم
ولی خوندن اینها هنوز من رو روی این باور نگه داشته که پیدا کردن سریال نامبر این پکیچ ها 10 دقیقه هم طول نمیکشه
اگه خواستی یه پکیچ ساده درست کن  و براش یه سریال نامبر بزار 
من احتمال زیاد  میدم (بالای 99% ) که کمتر از 10 دقیقه یه لیست از سریال ها بهت بدم
سنگ مفت گنجیشک هم مفت

----------


## MAHDIACTION

سلام 
قالب پايين رو چك كن اينطوري ها هم كه شما فكر مي كنيد نيست.
<^^%#^ - ^^^^^ - ^%%%^ - ^%^%% - ^%^^^>

----------


## hossein-khoshseyar

> سلام 
> قالب پايين رو چك كن اينطوري ها هم كه شما فكر مي كنيد نيست.
> <^^%#^ - ^^^^^ - ^%%%^ - ^%^%% - ^%^^^>


سلام
آخه اگه توجه کرده باشی موقعی که توی یک باکسی از ^ یا % استفاده می کنی موقع نصب فضایی که برای اون اختصاص میده 2 برابر. از این میشه فهمید که کجاها باید حرف قرار داد.
به جای بقیه هم اگه صفر یا هفت قرار بدیم اوکی میشه .اگه شک داری یه فایل ستاپ درست کن تا من سریالش رو برات پیدا کنم

----------


## shadi khanum

منم موافقم . میشه هر کلیدی رو پیدا کرد. به نظرم روش مطمئنی نیست
یعنی با Setup خود .NET بخواهم کار کنیم نمیشه باش یه سریال مطمئن گذاشت؟!!

----------


## MAHDIACTION

سلام 

هركاري يه روشي داره 

اين مسله با كد نويسي و ساخت Dll حل مي شه .
من طريقه انجام اين كار رو پيدا كردم به اميد خدا اگه به نتيجه رسيدم و مطالب رو دسته بندي كردم حتما براي مطالعه ميزارم.
آدرس مطلب مورد نياز
http://www.codeproject.com/KB/install/msinetserial.aspx
اينم يه Setup ساخته شده كه نمي تونيد كد رو حدس بزنيد.(البته اگه بهتون نرسونند)

----------


## hossein-khoshseyar

> سلام 
> 
> هركاري يه روشي داره 
> 
> اين مسله با كد نويسي و ساخت Dll حل مي شه .
> من طريقه انجام اين كار رو پيدا كردم به اميد خدا اگه به نتيجه رسيدم و مطالب رو دسته بندي كردم حتما براي مطالعه ميزارم.
> آدرس مطلب مورد نياز
> http://www.codeproject.com/KB/install/msinetserial.aspx
> اينم يه Setup ساخته شده كه نمي تونيد كد رو حدس بزنيد.(البته اگه بهتون نرسونند)




هرچند که من هنوز صفحه ای رو که لینک دادید نخوندم و فایل ست آپ رو ندیدم
ولی خوب دیدی که همین طوری با چند تا قالب الکی نمی شد یک سریال مطمئن ساخت 
نیاز به کد نویسی اضافه داره!!!

----------


## MAHDIACTION

با سلام خدمت دوستان عزيز
و سلام وي‍ژه خدمت دوست پيگير  hossein-khoshseyar .
من مطالب داخل اين لينك رو امتحان كردم ، كاملا جواب مي ده ،و شما هر نوع سريالي كه به خواهيد مي تونيد براي Setupخودتون طراحي كنيد.

به زودي مطالب رو ترجمه و دسته بندي مي كنم و براي دوستان قرار مي دهم.
مطالب بسيار ساده بيان شده بد نيست يه مطالعه كنيد.



منتظر انتقاد و پيشنهادات تون هستم.
اگه سوالي بود در خدمتم .

----------


## hossein-khoshseyar

سلام

ممنون از اینکه پیگیر حل مشکل بچه های سایت هستی
اگه کاری رو که گفتی انجام بدی .همگی ممنونت می شیم
راستش من هفته پیش باید یه پروژه ای زو تحویل می دادم برا همین خیلی دنبال سریال ست آپ ب.دم که متاسفانه نشد . برا همین برای اون پررژه از راه ای دیگه استفاده کردم
ولی اگه این طوری که شما می گید سدنی باسه . خوبه که از پروژهای بعد از این روش هم استفاده کنیم
ممنون از پیگیری هات و آموزشات

----------


## MAHDIACTION

*سلام به دوستان عزيز* 
وعده اي كه داده بودم رو عملي كردم .
ولي نيازمند همت شماست تا با نظرات و انتقادات خودتون مطالب رو ياري بديد.
به ضميمه اين پست دقت نكنيد.
متن اصلي رو داخل پست اول اين تايپيك قرار دادم.

----------


## hossein-khoshseyar

> *سلام به دوستان عزيز* 
> وعده اي كه داده بودم رو عملي كردم .
> ولي نيازمند همت شماست تا با نظرات و انتقادات خودتون مطالب رو ياري بديد.




با سلام
ولی من که چیزی از این عکسها متوجه نشدم
اگه ممکنه یه کم توضیح بده
بازم ممنون

----------


## MAHDIACTION

> با سلام
> ولی من که چیزی از این عکسها متوجه نشدم
> اگه ممکنه یه کم توضیح بده
> بازم ممنون


 سلام 
متن اصلي رو داخل پست اول اين تايپيك قرار دادم.

----------


## nasseritemp

سلام.
 من با روشی که شما گفتید Setup درست کردم ولی یک مشکل پیش اومد اون هم اینه که داخل پروژه با کلیک بر روی Button؛ یک فایل Excel با استفاده از یک dll باز میشه ولی در برنامه نصب شده با انجام کلیک فوق کلا از برنامه خارج میشه.
با تشکر

----------


## graphic

سلام به همگی
ما یه برنامه داریم توی VB.Net که از crystalreport استفاده کردیم برای setup سازی در قسمت rerequisites
crystalرو انتخاب کردیم
برنامه نسب هم میشه ولی صفحاتی که توشن  crystal هست ERROR دارن ( متن error طولانی ولی در مورد crystalreport هستش) در وافع اصلا باز نمیشن!! :اشتباه: 
ممنون میشم کمکمون کنین.

----------


## Sharif Lotfi

دوست عزيز . سلام و خسته نباشين به شما كه خيلي زحمت كشيدين
منم با خود محيط VS ستاپ مي ساختم و يكي از مشكلات اصليم پرتابل بودن برنامه بود كه با راهنمايي شما حل مي شه انشا...
خيلي وقته كه يه سوال دارم و چند بارم مطرح كردم كسي جواب نداده . از شما هم مي پرسم خدا كنه به نتيجه برسم:
ايا امكانش هست كه متن داخل پنجره ها و دكمه ها رو توي پنجره هاي interface فارسي كرد ؟
من وقتي اين كارو مي كنم ارور ميده.

----------


## MAHDIACTION

> سلام.
> من با روشی که شما گفتید Setup درست کردم ولی یک مشکل پیش اومد اون هم اینه که داخل پروژه با کلیک بر روی Button؛ یک فایل Excel با استفاده از یک dll باز میشه ولی در برنامه نصب شده با انجام کلیک فوق کلا از برنامه خارج میشه.
> با تشکر


سلام 
دوست من اگه امكان داره بيشتر توضيح بديد ،(امكان داره تصوير)

من احتمال ميدم مشكل شما يه جايي توي نرم افزار Orca باشه امكان داره يه جا اشتباهي داريد كار مي كنيد، من سعي مي كنم در اولين فرصت تصاوير مربوط به محيط Orca رو قرار بدم

----------


## MAHDIACTION

> سلام به همگی
> ما یه برنامه داریم توی VB.Net که از crystalreport استفاده کردیم برای setup سازی در قسمت rerequisites
> crystalرو انتخاب کردیم
> برنامه نسب هم میشه ولی صفحاتی که توشن crystal هست ERROR دارن ( متن error طولانی ولی در مورد crystalreport هستش) در وافع اصلا باز نمیشن!!
> ممنون میشم کمکمون کنین.


سلام به دوست عزيز 
اگه متن Error رو قراربديد عالي ميشه ولي شما دقت كنيد كه، احتمالا كريستال ريپورت توي سيستم مقصد نصب نمي شه ،اگه دستي نصب كنيد مشكل احتمالا حل مي شه، كريستال ريپورت كنار فايل ستاپ هست .
اگه سوالي بود در خدمتم

----------


## MAHDIACTION

> دوست عزيز . سلام و خسته نباشين به شما كه خيلي زحمت كشيدين
> منم با خود محيط VS ستاپ مي ساختم و يكي از مشكلات اصليم پرتابل بودن برنامه بود كه با راهنمايي شما حل مي شه انشا...
> خيلي وقته كه يه سوال دارم و چند بارم مطرح كردم كسي جواب نداده . از شما هم مي پرسم خدا كنه به نتيجه برسم:
> ايا امكانش هست كه متن داخل پنجره ها و دكمه ها رو توي پنجره هاي interface فارسي كرد ؟
> من وقتي اين كارو مي كنم ارور ميده.


سلام دوست من 
براي حل اين مشكل شما بايد با محيط Orca كار كنيد و با آيتم هاي اون آشنا بشيد .
گوشه اي از كار با محيط Orca رو تو پست اول همين تايپيك مي تونيد مطالعه كنيد.
اگه سوالي بود در خدمتم.

----------


## MAHDIACTION

> سلام به همگی
> ما یه برنامه داریم توی VB.Net که از crystalreport استفاده کردیم برای setup سازی در قسمت rerequisites
> crystalرو انتخاب کردیم
> برنامه نسب هم میشه ولی صفحاتی که توشن crystal هست ERROR دارن ( متن error طولانی ولی در مورد crystalreport هستش) در وافع اصلا باز نمیشن!!
> ممنون میشم کمکمون کنین.


 سلام دوست من

يه سري به آدرس زير بزن.
اميدوارم مشكل شما حل بشه كه قطعا هم همينطور خواهد شد.
https://barnamenevis.org/showthread.php?t=79689
شايد هم مشكل شما از License باشه.

اگه سوالي بود من در خدمتم

----------


## b.mahsa

سلام و ممنون از تاپيك خوبتون.
اگر بخوام كه موقع نصب Component اي مثل telerik يا هر برنامه جانبي ديگه اي هم نصب بشه. چي كار بايد بكنم؟ 
امكانش هست؟

----------


## MAHDIACTION

*سلام دوست من*
*ثبت كامپوننت ها در سيستم مقصد:*
اول شمابايد فايل Dll رو به پروژه Setup اضافه كنيد و بعد روي آن راست كليك كرده و گزينه Propertiseرا بزنيد و بعد در بخش صفت Register را به vsdraCOM تغيير دهيد. 
البته بعضي از Dll ها ظاهرا پشتيباني نمي شند ، من تست نكردم. اگه مشكلي بود يه 


http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/ce721916-5829-46fb-94cd-517e31eb523e/
*اضافه كردن SETUP هاي ديگر*
مسير زير رو به اميد خدا به زودي ترجمه مي كنم توي همين تايپيك قرار مي دم 
http://msdn.microsoft.com/en-us/libr...(v=VS.80).aspx

----------


## Sharif Lotfi

با تشكر فراوان از دوست عزيزمون MAHDIACTION و با اجازه ايشان براي اينكه تاپيك حاضر خيلي كامل و بدور از حاشيه است من هم در ادامه مطلب ايشون براي دوستاني كه مايلند تا علاوه بر ساخت setup  شورتكاتي براي Uninstall برنامه بسازن آموزشش رو تو همين تاپيك قرار مي دم .
از دوست عزيزمون هم خواهش مي كنم اگر صلاح دونستن لينك و يا متن اين بخش رو هم به پست اول اضافه كنن.
طريقه ساخت شورتكات براي uninstall برنامه:
اگر با VB.Net كار مي كنين به اين صورت عمل كنين :
در بخش ساخت setup در فولدر user's programs menu يا هر جاي ديگه اي كه مي خواين يك shortcut جديد اضافه كنين با نام uninstall myProject (يا هر اسمي كه دوست دارين)
فايلي كه ازش shortcut مي سازين همون primary output هست (همون فايل اجرايي كه از مسير application folder مي ريم) همونطور كه مي بينين اين دقيقا همون فايلي هستش كه براي اجراي برنامه مون ازش استفاده مي كنيم.
روي shortcut جديدي كه ساختين راست كليك كنين و properties رو انتخاب كنين و اين تغييرات رو بدين:
مقدار گزينه Arguments رو برابر


```
/u=[ProductCode]
```

بذارين
نام و توضيحات Description مربوط به uninstall رو به دلخواه خودتون تغيير بدين .

حالادر ماژول Main كد زير رو بنويسين :
کد:

```

        Dim arguments As String() = Environment.GetCommandLineArgs()
        Dim myArgument As String()
        Dim myString As String
        For Each argument As String In arguments
            Dim myChar As Char() = {"="c}
            myArgument = argument.Split(myChar)
            myString = myArgument(0)

            If myString.ToLower() = "/u" Then
                Dim guid As String = myArgument(1)

                Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.System)
                Dim si As ProcessStartInfo
                si = New ProcessStartInfo(path + "\\msiexec.exe", "/i " + guid)
                Dim myProcess As Process
                myProcess = Process.Start(si)
                myProcess.Close()
                Application.Exit()
                End
            End If
        Next
```

و تمام

----------


## Sharif Lotfi

اين هم روش اضافه كردن نام برنامه در راست كليك موس در محيط اكسپلورر ويندوز وقتي كه بخواهيم ويندوز به صورت اتوماتيك با استفاده از پسوند فايل برنامه باز كننده آنرا كه برنامه ماست تشخيص دهد :

روي پروژه ستاپ راست كليك كرده و گزينه ي view وسپس گزينه ي File Types رو انتخاب مي كنيد
در تب File Types روي آيتم File Types on target Machine راست كليك كرده و گزينه ي Add File Type رو كليك مي كنيم.
يك آيتم اضاقه مي شه با نام (New Document Type #1 (no extention
روي اين آيتم كليك كرده و در پنجره Properties در سمت راست مشخصات دلخواهتون رو تنظيم كنين
با فرض اينكه نام نرم افزار شما MySoftware و پسوند فايلهاي مخصوص نرم افزار شما m1.* باشه پيش مي ريم :
گزينه اول كه نام آيتم انتخاب شده است (مي تونه همون نام پيش فرض باشه)
گزينه دوم فايل اجرايي برنامه شماست . كه در محيط ساخت ستاپ اين فايل اجرايي همون Primary Output هستش كه اونو بايد انتخاب كنين و بعد از انتخاب جلوي اين گزينه عبارت
(Primary output from MySoftware(Active ديده خواهد شد . حواستون باشه كه منظورم فايل exeبرنامه نيست
گزينه سوم توضيح مربوط به نرم افزار شماست عبارتي كه اينجا مي نويسين در محيط ويندوز ديده ميشه مثلا بنويسين : MySoftware File يا هر عبارت توضيحي دلخواه
گزينه چهارم معرفي پسوند فايل مخصوص نرم افزار شماست كه بايد بدون نقطه معرفي بشه براي مثال شما مي نويسين m1
گزينه پنجم معرفي آيكون مخصوص فايلهاي m1 هستش با معرفي آيكون دلخواه شما در محيط اكسپلورر ويندوز فايلهاي با پسوند m1 با اين آيكون ديده ميشن
گزينه ششم رو بلد نيستم (پس به درد نمي خوره   :لبخند گشاده!: )
آيتم ساخته شده شما حالا اين شده :
(New Document Type #1 (m1
خوب ، تا اينجا مربوط بود به معرفي فايل با پسوند m1 به برنامه و شناختن اون
حالا مي ريم سراغ تعريف آيتمهايي كه موقع راست كليك در محيط اكسپلورر ويندوز بايد ديده بشن:
روي آيتمي كه ساختين (New Document Type #1 (m1 راست كليك كنين
گزينه Add Action رو انتخاب كنين
آيتم New Document Action #1 اضافه ميشه
روي اين آيتم كليك كرده و در پنجره Properties در سمت راست مشخصات دلخواهتون رو تنظيم كنين
گزينه اول Name عبارتي هست كه قراره شما در منوي راست كليك ماوس ببينيد مثلا اين عبارت
"Open with "MySoftware&
گزينه دوم رو برابر


```
 "%1"
```

بذارين
براي گزينه سوم هم عبارت open رو بنويسين
و تمام
حالا بعد از ساخت كامل ستاپ و نصب برنامه مي تونين روي فايل با پسوند m1 راست كليك كنين و منوي اضافه شده رو ببينين .

----------


## Sharif Lotfi

اين هم يه پروژه نمونه براي دوستان تا مطالب رو بهتر و عملي تر ببينن
توي اين پروژه موارد زير رو داريم :
ساخت يك ديتاتيبل و ديتاگريد 
باز كردن و ذخيره كردن يك فايل با پسوند shs 
ساخت setup
ايجاد شورتكات براي uninstall
اضافه كردن نام برنامه در راست كليك ماوس در محيط اكسپلورر ويندوز
قابليت خواندن و باز كردن فايل با راست كليك روي فايل يا دابل كليك آيكون فايل
(دقت داشته باشين كه مراحل آخر در محيط ويژوال استوديو قابل دسترسي نيستن و بعد از ساخت ستاپ در محيط اكسپلورر و اجراي فايل ستاپ مي تونين اين قابليتها رو ببينين- يعني بعد از توسعه)

----------


## b.mahsa

با سلام
آقا مهدی بازم ممنون از تاپیک خیلی خوبتون .
من نتونستم comment و اسم shortcut ها و ... بقیه چیز ها رو فارسی بنویسم . این Setup ، فارسی رو Support نمیکنه یا من نتونستم تنظیمش کنم؟؟
البته من از windows 7 استفاده میکنم . روی xp تست نکردم

----------


## 8813222

با سلام

لطفا آموزش ستاپ سازی در visual studio 2010رو هم بذارید :تشویق:  :تشویق:  :تشویق:  :تشویق:

----------


## Hooman_vb

آقا جان بچه هاتون کمک
دیگه حالم از هرچی VS و Sql توی دنیا با تمام ورژن های موجود داره به هم می خوره.
من تمام این مراحل رو انجام دادم بازم Error داره :
 A network-related or instance-specified error occured while stablishing a connection to SQL Server.The server was not found or was not accessible.Verify that the instance name is correct and the SQL Server is configured to allow remote connection ...

----------


## Hooman_vb

لطفا جواب بدین...

----------


## saeed_sho

سلام میشه اون فای dll که با زبان C++‎برای سریال نامبر نوشتید رو به زبان وی بی برام بزارید
ممنون

----------


## M.Fekri

سلام
مشکل از connection string که 
data source=.\sqlexpress;attachdbfilename=|datadictiona  ry|\test.mdf;integrated security=true;connect timeout=30;user instance=true
احتمالا به این صورت درست می شه.بستگی داره که چه طور به دیتابیس connnect می شوید.
به جای |datadictionary| هم مسیر فایل mdf را قرار می دهید.

----------


## sayan

سلام .

جرا setup ای که با ویژوال استادیو نسخه 2010 در ویندوز 7 میسازیم حروف فارسی بصورت کاراکترهای علامت سوال نشان داده می شود ؟ چاره کار چیست ؟

----------


## saha_h2001

سلام دوستان عزیز
فوری فوری فوری :خجالت: 
من یه پروژه با سی شارپ و تکنولوژی لینک نوشتم و بانک SQL Server 
میخوام این برنامه را بصورت پرتابل در بیارم که هر جایی بدون استاده به نصب و چیزای دیگه ازش استفاده کنم به گونه ای که اطلاعات قبلی باشند
لطفا راهنماییم کنید کارم خیلی گیره

----------


## Alannysmeashy

من قطعا این را به دوستانم توصیه

----------


## Alannysmeashy

کاملا جذاب پست

----------


## مرتضی تقدمی

سلام
ممنون بابت آموزش.
موفق باشید

----------


## 123456789momo

سلام 
من میخوام فایل setup پروژم فقط یک بار قابلیت نصب شدن داشته باشه باید چه کاری انجام بدم
خیلی فوری هستش لطفا کمک کنید
من با vs 2010 و #c کار می کنم
با تشکر

----------


## NaserHadi

باسلام
بهترین روش برای اضافه کردن فایل دیتابیس به ستاپ برنامه چیه؟
با تشکر

----------

