PDA

نسخه کامل مشاهده نسخه کامل : سوال در مورد ایجاد یک setup در بخش Setup and Deployment ی ویژوال استودیو



jeremy28
18-07-2009, 19:43
سلام
من می خواستم با استفاده از برنامه setup ساز توی خود Visual Studio (Setup and Deployment ) ، یه دونه setup بسازم ، به طوری که وقتی کاربر اونو نصب می کنه، در حین نصب دو تا فایل dll رو توی پوشه Windows/system32 کپی کنه!
می خواستم ببینم چه جوری می تونم این کار رو انجام بدم؟
یعنی اون دو تا فایل dll رو کجا قرار بدم و چه جوری بهش بگم که توی فولدر system32 بریزه؟

راستی، یکی از اون dll ها، فایل سیستمی خود ویندوزه که من تغییرش دادم و می خوام این dll تغییر کرده جایگزین dll موجود بشه!
آیا واسه این کار، در حین نصب به کاربر پیغام هشدار نمی ده؟ (چون یه فایل سیستمی ویندوز می خواد جایگزین بشه!!)

با تشکر

mahdi7s
18-07-2009, 23:45
سلام خدمت دوست عزیز


من می خواستم با استفاده از برنامه setup ساز توی خود Visual Studio (Setup and Deployment ) ، یه دونه setup بسازم ، به طوری که وقتی کاربر اونو نصب می کنه، در حین نصب دو تا فایل dll رو توی پوشه Windows/system32 کپی کنه!
می خواستم ببینم چه جوری می تونم این کار رو انجام بدم؟
یعنی اون دو تا فایل dll رو کجا قرار بدم و چه جوری بهش بگم که توی فولدر system32 بریزه؟


برای این کار پس از باز کردن یک پروژه ی setup در تب File System در سمت چپ بر روی قمست خالی ای راست کلیک و
Add special folder>System folder رو انتخاب و بعد از اون روی پوشه ی system folder در سمت چپ کلیک کنید و بعد در سمت راست راست کلیک و Add>File رو انتخاب و فایل هایی که می خواین در پوشه ی system32 قرار داده بشن رو انتخاب کنید.


راستی، یکی از اون dll ها، فایل سیستمی خود ویندوزه که من تغییرش دادم و می خوام این dll تغییر کرده جایگزین dll موجود بشه!
آیا واسه این کار، در حین نصب به کاربر پیغام هشدار نمی ده؟ (چون یه فایل سیستمی ویندوز می خواد جایگزین بشه!!)


فکر نمی کنم امکان اینکار وجود داشته باشه و اگه هم بشه چندان منطقی نیست.


در ضمن اینگونه سوالات رو در فروم دات نت مطرح کنید به جواب های بهتری میرسید.

موفق باشید.

jeremy28
24-07-2009, 16:14
سلام
ببخشید یه سوال دیگه داشتم!

من اگه بخوام یکی از فایل های dll ام رو توی رجیستری ثبت کنم، چی کار باید بکنم؟

من همراه اون dll ای که نوشتم، یه فایل دیگه هم دارم که کدهای مربوط به رجیستر کردن این dll رو توش نوشتم(یعنی یه فایل .cpp دیگه کنار اون dll واسه رجیستر کردن دارم(با توابع DLLRegisterServer و ...)

همین جوری که بخوام این dll رو توی سیستم نصب کنم، اول می یام اونو توی پوشه system32 کپی می کنم و بعد با دستور :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در محیط command prompt اون رو در رجیستری ثبت می کنم(یعنی بعد از این کار، تمام کلیدهای رجیستری که توی اون فایل .cpp تعریف کرده بودم رو داخل رجیستری می بینم!)

حالا که من می خوام یه setup واسه نصب این dll ایجاد کنم، اول می یام dll ها رو طبق پست شما، توی system folder قرار می دم، ولی برای رجیستر کردنش به این شکل، نمی دونم چی کار باید کنم؟

توی محیطش که یه تب مربوط به رجیستری هست و 5 کلید اصلی رجیستری توش هست که میشه کلیدهای لازم رو در بخش های مناسب ایجاد کرد تا موقع نصب، اونها رو هم در سیستم ایجاد کنه، ولی من نمی خوام به این شکل ورودی های رجیستری رو تولید کنم، چون قبلاً توی یه فایل cpp کنار کد dll ام، این کلید ها رو تعریف و با توابع مربوطه ایجاد کردم!

الآن فقط می خوام که موقع نصب، دستور regsrv32.exe mydll.dll رو یه بار اجرا کنه، یعنی یه جورایی فقط regsrv32.exe رو فراخونی کنه و دیگه لازم نباشه من کلیدهای رجیستری رو دوباره توی پروژه setup ایجاد کنم!

میشه همچین کاری کرد؟

اگه ممکنه دوباره کمکم کنید
با تشکر فراوان:40:

mahdi7s
24-07-2009, 17:36
سلام


الآن فقط می خوام که موقع نصب، دستور regsrv32.exe mydll.dll رو یه بار اجرا کنه، یعنی یه جورایی فقط regsrv32.exe رو فراخونی کنه و دیگه لازم نباشه من کلیدهای رجیستری رو دوباره توی پروژه setup ایجاد کنم

با کد زیر می تونید اینکارو انجام بدید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

jeremy28
27-07-2009, 10:55
سلام



با کد زیر می تونید اینکارو انجام بدید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.
سلام و خیلی خیلی ممنون
می خواستم بپرسم این کد رو در کجای پروژه ی setup باید وارد کنم؟

mahdi7s
27-07-2009, 14:40
سلام


می خواستم بپرسم این کد رو در کجای پروژه ی setup باید وارد کنم؟

منتظر این سوال بودم.

اما متاسفانه شما در خود پروژه ی setup نمی تونید کد نویسی انجام بدید.:41:

راه حل:

شما می تونید پروژه ی setup رو جدا گانه ساخته و سپس یه win app جدید ایجاد و کد پست قبل رو در سازنده ی فرم قرار بدین و سپس با استفاده از همون کد و اما بدون فرستادن آرگومانی به برنامه فایل setup رو اجرا کنید
و خود برنامه رو ببندید.(البته بهتر هست محیط این برنامه نشون داده نشه.)

موفق باشید.