PDA

View Full Version : حرفه ای: چگونگی ساخت فایل اجرایی برنامه بدون اثری از DLL های استفاده شده در ساخت



bzdesign
دوشنبه 07 آذر 1390, 00:01 صبح
سلام دوستان. نمیدونم آیا این عنوان مناسب منظورم بود یا نه ؟
ولی سوال بسیار مهمی هست و اون اینکه چطوری برای مشتری نرم افزاری بسازیم که با اینکه تو نرم افزارمون فرضا از کامپوننت های تلریک استفاده کردیم ،و وقتی از برنامه فایل نصب میسازیم ،دیگه برنامه برای اجرا نیاز به DLL های تلریک نداشته باشه که تو پوشه نصب برنامه مشتری ببینه و بفهمه همه چیزو. فقط یه فایل EXE ببینه با یه فایل دیتا بیس.
من تمام نرمافزار های ساخته شده تو دلفی رو با این ویژگی دیدم. یعنی شما از 100 تا کامپوننت مختلف به راحتی استفاده میکنی و نرم افزارت خوشکل میشه ،ولی وقتی کار رو به مشتری داری تحویل میدی فقط یدونه فایل EXE خالی هست. بدون نصب هیچکدوم از DLL هایی که استفاده کردی.
یعنی حتی تو پوشه نصب برنامه فقط یدونه فایل اجرایی برنامه و یدونه دیتابیس میبینی.
ولی من تا الان هر فایل نصبی واسه پروژه هام تو VB نوشتم همشون وقتی نصب میشن تو فولدر نصب برنامه DLL تمام کامپوننت هایی که استفاده کردم معلومه. و این خیلی بده وقتی نرم افزاری در حد ملی مینویسی و جامعه قراره ببیننش.
اساتید کمک کنید:متفکر:

tehrandevil
دوشنبه 07 آذر 1390, 10:08 صبح
سلام دوست عزيز،
مشكل رو درك نمي كنم، چه اشكالي وجود داره كه مشتري ببينه كه از چه كامپوننت هايي استفاده كردي؟
به هر صورت، يه نرم افزاري هست مربوط به شركت Redgate به نام Smart Assembley كه علاوه بر اينكه نرم افزارت رو به صورت Obfuscate در مياره بلكه مي تونه كه تمام DLL هاي مورد استفادت رو هم پك كنه و يك فايل EXE با حجم بالا درست كنه.(من چون باهاش موافق نيستم، استفاده نمي كنم)
موفق باشي.

محمد فدوی
دوشنبه 07 آذر 1390, 17:57 عصر
با تشکر از tehrandevil.
از نظر من پک کردن dll ها در یک فایل exe نه تنها باعث کاهش فاهش Performance می شه بلکه کاری بیهوده هم هست...
چون اصلا فلسفۀ بوجود اومدن Dynamic Link Library یا همون dll چنین چیزیه.

salam333
دوشنبه 07 آذر 1390, 18:03 عصر
سلام دوستان. نمیدونم آیا این عنوان مناسب منظورم بود یا نه ؟
ولی سوال بسیار مهمی هست و اون اینکه چطوری برای مشتری نرم افزاری بسازیم که با اینکه تو نرم افزارمون فرضا از کامپوننت های تلریک استفاده کردیم ،و وقتی از برنامه فایل نصب میسازیم ،دیگه برنامه برای اجرا نیاز به DLL های تلریک نداشته باشه که تو پوشه نصب برنامه مشتری ببینه و بفهمه همه چیزو. فقط یه فایل EXE ببینه با یه فایل دیتا بیس.
من تمام نرمافزار های ساخته شده تو دلفی رو با این ویژگی دیدم. یعنی شما از 100 تا کامپوننت مختلف به راحتی استفاده میکنی و نرم افزارت خوشکل میشه ،ولی وقتی کار رو به مشتری داری تحویل میدی فقط یدونه فایل EXE خالی هست. بدون نصب هیچکدوم از DLL هایی که استفاده کردی.
یعنی حتی تو پوشه نصب برنامه فقط یدونه فایل اجرایی برنامه و یدونه دیتابیس میبینی.
ولی من تا الان هر فایل نصبی واسه پروژه هام تو VB نوشتم همشون وقتی نصب میشن تو فولدر نصب برنامه DLL تمام کامپوننت هایی که استفاده کردم معلومه. و این خیلی بده وقتی نرم افزاری در حد ملی مینویسی و جامعه قراره ببیننش.
اساتید کمک کنید:متفکر:

ميتوني در برنامه انستال dllها را درsys32نصب بشند ودر فولدر برنامه فقط ديتا بيس و فايل exeبشه

joker
دوشنبه 07 آذر 1390, 18:21 عصر
کامپوننتهای دلفی DLL نیستند ، مطمئنا توی دلفی هم اگه از dll استفاده کنی باید کنارش باشه

شما برای راحتی کار که حالا حساس هستی روی اینکه dll ی کنار فایلت نباشه میتونی dll ها را در یکی از مسیرهای دیفالت ویندوز مثل system32 کپی کنی
اینطوری برنامه ات میتونه بدون اینکه فایلها حتما کنارش باشند ، اجرا بشه
ابزارهایی هستند که همین عمل را انجام میدهند و فایلهای dll شما را به عنوان ریسورس در خود فایل exe قرار میدهند.
زمان اجرای اولیه این برنامه ها معمولا اپیه کم بیشتر از حد معمول میشه ولی بعد از اجرا دیگه مشکلی ندارید.

vb.net.33
دوشنبه 07 آذر 1390, 18:22 عصر
ميتوني در برنامه انستال dllها را درsys32نصب بشند ودر فولدر برنامه فقط ديتا بيس و فايل exeبشه

می تونید این روش رو توضیح بدین؟

vb.net.33
دوشنبه 07 آذر 1390, 18:24 عصر
کامپوننتهای دلفی DLL نیستند ، مطمئنا توی دلفی هم اگه از dll استفاده کنی باید کنارش باشه

شما برای راحتی کار که حالا حساس هستی روی اینکه dll ی کنار فایلت نباشه میتونی dll ها را در یکی از مسیرهای دیفالت ویندوز مثل system32 کپی کنی
اینطوری برنامه ات میتونه بدون اینکه فایلها حتما کنارش باشند ، اجرا بشه
ابزارهایی هستند که همین عمل را انجام میدهند و فایلهای dll شما را به عنوان ریسورس در خود فایل exe قرار میدهند.
زمان اجرای اولیه این برنامه ها معمولا اپیه کم بیشتر از حد معمول میشه ولی بعد از اجرا دیگه مشکلی ندارید.

می تونید بفرمائید dll ها رو دقیقا به کدوم پوشه کپی کنیم؟ و آیا تو همه سیستم ها کار میکنه؟

bzdesign
دوشنبه 07 آذر 1390, 23:37 عصر
تشکر میکنم از توضیحات جامع دوستان عزیز. بسیار استفاده کردم از فرمایشاتتون.
پاسخ بسیلری از سوالاتمو گرفتم. حالا به نظر شما کدوم برنامه ایجاد کننده setup از بقیه گرافیک خیره کننده تری داره و میشه تموم تنظیمات لازم رو کاستومایز شده درش ایجاد کرد ؟

mgh64120
دوشنبه 07 آذر 1390, 23:41 عصر
سلام دوست عزيز
بهترين گزينه InstallShield .
محبوبترين و پيشرفته ترين نرم افزار ساخت فايل نصب.
موفق باشيد
بدرود.