PDA

View Full Version : سوال: حجم فایل پروژه نهایی



md3848
یک شنبه 11 اسفند 1398, 12:06 عصر
سلام - من یه پروژه ساده نوشتم، حجمش شده 8 میگ حدودا ولی یه پروژه سنگین ( نسبت به اولی ) نوشتم حجم فایل exe نهاییش شده 800 کیلوبایت - داستان چیه؟:متفکر:

ROSTAM2
یک شنبه 11 اسفند 1398, 13:00 عصر
سلام؟! تا منظور شما از پروژه سنگین کد نویسی باشه یا فایل های ریسورس و ... ؟ عمدتاً تصاویر و فایلهای embed شده در ریسورس حجم پروژه رو بالا می بره(آیکون، تصویر و ...)

md3848
یک شنبه 11 اسفند 1398, 13:10 عصر
میشه کاری کرد که فایل های dll هم داخل فایل exe باشه؟ الان یه فایل exe دارم و شونصد تا فایل dll و ... کنارش

the king
یک شنبه 11 اسفند 1398, 16:44 عصر
میشه کاری کرد که فایل های dll هم داخل فایل exe باشه؟ الان یه فایل exe دارم و شونصد تا فایل dll و ... کنارش

بعضی کتابخانه های dll طوری طراحی شده اند که بعد ادغام درست کار نمی کنند، اما در کل می توانید از ILMerge (https://github.com/dotnet/ILMerge) یا نسخه بصری ساده تر اون ilmergegui (https://bitbucket.org/wvd-vegt/ilmergegui/src/master/) استفاده کنید.
نمونه های مشابه ILMerge مثلا ILRepack (https://github.com/gluck/il-repack) هم هست.
در ضمن در اغلب ابزار های obfuscator مثلا SmartAssembly (https://www.red-gate.com/products/dotnet-development/smartassembly/)، ادغام فایل ها یکی از قابلیت های جانبی شون ئه.
و ابزار های جانبی ویژوال استدیو مثل Vitevic Assembly Embedder (https://marketplace.visualstudio.com/items?itemName=Vitevic.VitevicAssemblyEmbedder) هم این قابلیت رو دارند و چون روی روال Build ویژوال استدیو سوار میشن، طبعا کارکرد ساده تری دارند.
و خودتون هم با اتصال AppDomain.CurrentDomain.AssemblyResolve به یک متد می توانید با مقداری کد نویسی و روال اضافی dll ها رو ادغام و موقع اجرا فراخوانی کنید.
در NET Core 3.0 قابلیت ساختن تک فایل (PublishSingleFile) وجود داره که البته مربوط به NET Core. ئه و ارتباطی با NET. نداره.