ورود

View Full Version : آموزش: انتقال همه DLL های پروژه به داخل فایل EXE و تبدیل کل فایلها به یک EXE پایانی



Behnam6670
پنج شنبه 13 آذر 1393, 09:47 صبح
سلام دوستان

یه مشکلی که من خودم داشتم سر DLL های پروژم بود که کنار فایل EXE نهایی برای اجرا شدن باید میزاشتم که این یکم برا من جلوه خوبی نداشت.من میخواستم وقتی پروژه رو تموم میکنم فقط یدونه فایل EXE داشته باشم البته اگه شما از هیچ رفرنس اضافی تو پروژتون استفاده نکرده باشید به همین شکل هم هستش ولی وقتی شما از چندتا dll میاید استفاده میکنید مجبور هستید dll هارو هم بندازید کنار فایلتون یعنی برای اجرا شدن باید باشن.من خودم خیلی سعی کردم که اینو حل کنم تا اینکه موفق شدم.
مثلا شما تو پروژتو از Telerik استفاده کردید یا نمیدونم StimulSoft یا FastReport یا کامپوننت تقویم شمسی یا هر dll دیگه ای که جزو کتابخونه های خود دات نت نیستش برای اینکه این dll هارو تو خود فایل Exe پروژتون Embed کنید از فایل زیر استفاده کنید.براحتی خودش روی ویژوال استودیو نصب میشه.
بعد از نصب رو dll مورد نظرتون تو رفرنسهای پروژتون کلیک راست کنید یه آیتم بهش اضافه شده به نام Embed Assembly که کافیه اونو True کنید و همچنین Copy Local رو هم True کنید و پروژه رو کامپایل کنید اینجوری این dll داخل خود exe تون Embed میشه و دیگه کنار خود exe این dll رو نمیبینید.
امیدوارم به درد دوستان بخوره چون به کاره من که خیلی اومد.موفق باشید.

راستی صلوات یادتون نره:چشمک:

محمد رضا فاتحی
پنج شنبه 13 آذر 1393, 10:53 صبح
سلام ممنون ولی یه سوال تو VS2010 این عمل کار نمی کنه درسته؟چون هر دوتای این خصوصیات با هم True نمی شن!!!

Behnam6670
پنج شنبه 13 آذر 1393, 11:02 صبح
سلام کار میکنه شما اول copy local رو true کن بع Embed Assemply

Behnam6670
پنج شنبه 13 آذر 1393, 11:16 صبح
دوستان من یه برنامه نمونه گذاشتم خواستید ببینید.فقط یدونه EXE هستش.توش از Telerik و FastReport استفاده کردم.
https://www.dropbox.com/s/ren0lfbrvd16m9u/TestProjectWithSingleExe.rar?dl=0

محمد رضا فاتحی
پنج شنبه 13 آذر 1393, 15:06 عصر
سلام کار میکنه شما اول copy local رو true کن بع Embed Assemply
با عرض معذرت کار نمی کنه نگاه کن بعد از اینکه Embed Assemply رو True می کنم CopyLocal غیر فعال میشه
126291

126292

shahryari
پنج شنبه 13 آذر 1393, 17:15 عصر
همه دی ال ال ها رو نمیشه انبدد کرد ، فقط دات نتی ها.....
یه نمونه اش رو قبلا نوشتم
http://barnamenevis.org/showthread.php?421610-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%D8%AF%D8%BA%D8%A7%D9%85-dll-%D9%87%D8%A7-%D9%88-%D9%81%D8%A7%DB%8C%D9%84-exe-%D9%88-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DB%8C%DA%A9-%D9%81%D8%A7%DB%8C%D9%84-exe-%DB%8C%DA%A9%D9%BE%D8%A7%D8%B1%DA%86%D9%87-%28%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF%29

jmfnima
جمعه 14 آذر 1393, 00:39 صبح
با سلام
دوست عزیز اینکار رو با نرم افزار Winrar به راحتی میتونید انجام بدین . معمولا روی هر سیستمی این نرم افزار نصب هستش.

Behnam6670
شنبه 15 آذر 1393, 07:11 صبح
با عرض معذرت کار نمی کنه نگاه کن بعد از اینکه Embed Assemply رو True می کنم CopyLocal غیر فعال میشه
126291

126292

شما اون Exe که بالا گذاشتم رو اگه درست نصب کرده باشید یه ایتم به اون قسمت Propertise باید اضافه بشه که برا شما اضافه نشده.عکسی که من گذاشتم رو اگه نگاه کنی با عکس خودت فرق داره شما باید Embed Assembly رو True کنی نه Embed Interop Type:چشمک:

mohsen_ff
جمعه 17 دی 1395, 13:17 عصر
سلام
من این فایل رو نصب کردم اما گزینه
Embed Assemply اضافه نشد :ناراحت::ناراحت:
ویژوال 2015

vb341
جمعه 01 بهمن 1395, 19:36 عصر
دوست عزیز جواب نمیده . بعد از نصب در ویژوال استودیو 2015 هیچ چیزی تغییر نمیکنه