نمایش نتایج 1 تا 11 از 11

نام تاپیک: ادغام exeهای چند Project در قالب یک فایل exe ؟

  1. #1
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    ادغام exeهای چند Project در قالب یک فایل exe ؟

    سلام:
    امیداورم که از عنوان سوال، سوال بنده رو متوجه شده باشین.
    دریکه Solution چند Project ایجاد شده است.
    وقتی برنامه کامپایل می شود به ازای هر Project ، یک فایل اجرای exe درایم.
    حالا چی کار باید کرد که همه این پروزه ها در یک فایل اجرای قرار داده شود.
    2.PNG1.PNG

    برنامه رو هم براتون می زارم.

    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar A.rar‏ (230.8 کیلوبایت, 4 دیدار)

  2. #2
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    نقل قول نوشته شده توسط roolinjax مشاهده تاپیک
    سلام منظورتون اینه که چهار تا رو همزمان اجرا کنید ؟
    اگه اینه که خوب شما می تونی یه پروژه رو بعنوان شروع کننده ی اجرا قرار بدین و در فایل program.cs این پروژه بقیه فایل های اجرایی رو فراخوانی کنید
    یا راه دیگه اجرای زنجیره ایه ، یعنی هر پروژه پروژه ی بعدی رو فراخونی کنه
    فکر کنم جواب بده
    اگه اشتباه فهمیدم بیشتر توضیح بدین
    ممنون. نه.

    می خوام بقیه فایل های اجرای B C D در کنار فایل A نباشه
    یعنی همه این ها داخل فایل A قرار بگیرن.

    فرض کن مثل :
    حالتی ، که یک پروزه ایجاد کردم و تمام فرم های پروزه های B C D رو در پروژه A ساختم و فراخوانی کردم.

    منظور ادغام این چهار فایل هستش.

  3. #3
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    نقل قول نوشته شده توسط roolinjax مشاهده تاپیک
    منظورت استفاده از فرم ها و کدهای توی پروژه های دیگه که توی یه سلوشن هستنه ؟
    اگه اینه
    یه نگاه بکن
    عزیزم نه .
    اصلا سوال متوجه نشدین .
    خوبه که تصویر هم براتون گذاشتم.

    من می خوام همه exeها در یک فایل exe کامپایل بشه.

  4. #4
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    سلام
    اگر ساختار فایل ها سادس و نیاز به بانک نیست می تونید فایل های exe رو درون برنامه Resource کنید و از طریق 1 برنامه همه رو از درون خودش اجرا کنید

  5. #5
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    سلام
    اگر ساختار فایل ها سادس و نیاز به بانک نیست می تونید فایل های exe رو درون برنامه Resource کنید و از طریق 1 برنامه همه رو از درون خودش اجرا کنید
    از توجه شما ممنونم.
    نه همه فایل به یک بانک مشترک دسترسی دارن.
    یه راه حل ساده ولی غیره اصولی و مهندسی به ذهن رسیده:
    که همه کلاس ها و فرم های پروزه های دیگر رو درون یک پروژه اصلی بریزم
    که کار زیاد جالب نمی شه چون به یک عالمه متغییر تعریف کردن و کدنویسی نیاز داره
    نظر شما چیه اگه راه حلی نداره یه جوری با این روش به خواستم برسم.

  6. #6

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    سلام برای این که چندتا exe رو درون یک exe قرار بدید باید اون هارو بصورت ریسورس دربیارید و با یکسری کد در زمان اجرا فایل موردنظر رو استخراج کنید و بعد از اتمام کار دوباره حذفش کنید
    کد به نقل از ایمان مدائنی
    ------------------------------
    یک فایل Resource به پروژه خودتون اضافه کنید و از دکمه منو شکل Add resource گزینه File را انتخاب کنید و فایل اجرایی مورد نظر را به پروژه اضافه کنید. سپس روی فایل کلیک کنید و وقتی به مشخصات آن دسترسی پیدا کردید، مشخصه Build action آن را بر روی Embedded Resource تنظیم کنید. حالا کلاسی شبیه به کلاس زیر را برای استخراج و اجرای فایل exe مورد نظر احتیاج خواهید داشت :
    public class ResourceExtractor  
    {
    /// <summary>
    /// Extract an resource to a file
    /// </summary>
    /// <param name="resourcePath">Path to resource</param>
    /// <param name="destPath">Destination file path</param>
    public void Extract(string resourcePath, string destPath)
    {
    var stream = GetType().Assembly.GetManifestResourceStream(resou rcePath);
    if (stream != null)
    {
    var bytes = new byte[Convert.ToInt32(stream.Length)];
    stream.Read(bytes, 0, bytes.Length);
    File.WriteAllBytes(destPath, bytes);
    }
    }

    /// <summary>
    /// Execute a process and returns it's id
    /// </summary>
    /// <param name="process">Process info to run</param>
    /// <returns>Process id for another porpuses</returns>
    public int Run(ProcessStartInfo process)
    {
    return Process.Start(process).Id;
    }

    /// <summary>
    /// Kill a process by the given id
    /// </summary>
    /// <param name="procId">Process id to kill</param>
    public void KillProcess(int procId)
    {
    Process.GetProcessById(procId).Kill();
    }
    }

    public class ResourceExtractor  
    {
    /// <summary>
    /// Extract an resource to a file
    /// </summary>
    /// <param name="resourcePath">Path to resource</param>
    /// <param name="destPath">Destination file path</param>
    public void Extract(string resourcePath, string destPath)
    {
    var stream = GetType().Assembly.GetManifestResourceStream(resou rcePath);
    if (stream != null)
    {
    var bytes = new byte[Convert.ToInt32(stream.Length)];
    stream.Read(bytes, 0, bytes.Length);
    File.WriteAllBytes(destPath, bytes);
    }
    }

    /// <summary>
    /// Execute a process and returns it's id
    /// </summary>
    /// <param name="process">Process info to run</param>
    /// <returns>Process id for another porpuses</returns>
    public int Run(ProcessStartInfo process)
    {
    return Process.Start(process).Id;
    }

    /// <summary>
    /// Kill a process by the given id
    /// </summary>
    /// <param name="procId">Process id to kill</param>
    public void KillProcess(int procId)
    {
    Process.GetProcessById(procId).Kill();
    }
    }


    با استفاده از کلاس بالا براحتی می تونید یک فایل exe رو از ریسورس های پروژه بیرون بکشید و اجرا کنید و با استفاده از Id اون، مثلاً در هنگام خروج از برنامه خودتون، اون برنامه رو هم ببندید. یک مثال از استفاده این کلاس :
    var resExtractor = new ResourceExtractor();  
    var destPath = Environment.GetFolderPath(Environment.SpecialFolde r.Windows) + "file.exe";
    resExtractor.Extract("Farasun.file.exe",destPath);
    int procId = resExtractor.Run(new ProcessStartInfo(destPath));


    درمثال فوق به جای Farasun از فضای نام پروژه خودتون استفاده کنید. هنگام بسته شدن برنامه خودتون ، با استفاده از procId و متد Kill کلاس فوق می تونید برنامه ای که باز کردید را از حافظه خارج کنید و بعد از اون هم اگر نیاز هست، فایل مورد نظر را از پوشه ویندوز حذف کنید.

  7. #7

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    سلام برای این که چندتا exe رو درون یک exe قرار بدید باید اون هارو بصورت ریسورس دربیارید و با یکسری کد در زمان اجرا فایل موردنظر رو استخراج کنید و بعد از اتمام کار دوباره حذفش کنید
    کد به نقل از ایمان مدائنی
    ------------------------------
    یک فایل Resource به پروژه خودتون اضافه کنید و از دکمه منو شکل Add resource گزینه File را انتخاب کنید و فایل اجرایی مورد نظر را به پروژه اضافه کنید. سپس روی فایل کلیک کنید و وقتی به مشخصات آن دسترسی پیدا کردید، مشخصه Build action آن را بر روی Embedded Resource تنظیم کنید. حالا کلاسی شبیه به کلاس زیر را برای استخراج و اجرای فایل exe مورد نظر احتیاج خواهید داشت :
    public class ResourceExtractor  
    {
    /// <summary>
    /// Extract an resource to a file
    /// </summary>
    /// <param name="resourcePath">Path to resource</param>
    /// <param name="destPath">Destination file path</param>
    public void Extract(string resourcePath, string destPath)
    {
    var stream = GetType().Assembly.GetManifestResourceStream(resou rcePath);
    if (stream != null)
    {
    var bytes = new byte[Convert.ToInt32(stream.Length)];
    stream.Read(bytes, 0, bytes.Length);
    File.WriteAllBytes(destPath, bytes);
    }
    }

    /// <summary>
    /// Execute a process and returns it's id
    /// </summary>
    /// <param name="process">Process info to run</param>
    /// <returns>Process id for another porpuses</returns>
    public int Run(ProcessStartInfo process)
    {
    return Process.Start(process).Id;
    }

    /// <summary>
    /// Kill a process by the given id
    /// </summary>
    /// <param name="procId">Process id to kill</param>
    public void KillProcess(int procId)
    {
    Process.GetProcessById(procId).Kill();
    }
    }

    public class ResourceExtractor  
    {
    /// <summary>
    /// Extract an resource to a file
    /// </summary>
    /// <param name="resourcePath">Path to resource</param>
    /// <param name="destPath">Destination file path</param>
    public void Extract(string resourcePath, string destPath)
    {
    var stream = GetType().Assembly.GetManifestResourceStream(resou rcePath);
    if (stream != null)
    {
    var bytes = new byte[Convert.ToInt32(stream.Length)];
    stream.Read(bytes, 0, bytes.Length);
    File.WriteAllBytes(destPath, bytes);
    }
    }

    /// <summary>
    /// Execute a process and returns it's id
    /// </summary>
    /// <param name="process">Process info to run</param>
    /// <returns>Process id for another porpuses</returns>
    public int Run(ProcessStartInfo process)
    {
    return Process.Start(process).Id;
    }

    /// <summary>
    /// Kill a process by the given id
    /// </summary>
    /// <param name="procId">Process id to kill</param>
    public void KillProcess(int procId)
    {
    Process.GetProcessById(procId).Kill();
    }
    }


    با استفاده از کلاس بالا براحتی می تونید یک فایل exe رو از ریسورس های پروژه بیرون بکشید و اجرا کنید و با استفاده از Id اون، مثلاً در هنگام خروج از برنامه خودتون، اون برنامه رو هم ببندید. یک مثال از استفاده این کلاس :
    var resExtractor = new ResourceExtractor();  
    var destPath = Environment.GetFolderPath(Environment.SpecialFolde r.Windows) + "file.exe";
    resExtractor.Extract("Farasun.file.exe",destPath);
    int procId = resExtractor.Run(new ProcessStartInfo(destPath));


    درمثال فوق به جای Farasun از فضای نام پروژه خودتون استفاده کنید. هنگام بسته شدن برنامه خودتون ، با استفاده از procId و متد Kill کلاس فوق می تونید برنامه ای که باز کردید را از حافظه خارج کنید و بعد از اون هم اگر نیاز هست، فایل مورد نظر را از پوشه ویندوز حذف کنید.

  8. #8
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    نقل قول نوشته شده توسط roolinjax مشاهده تاپیک
    سلام مجدد
    در جواب پست خصوصی دوست خوبم من پروژه شون رو دانلود کردم و دیدم از همه ی این راه حل ها یه راه ساده تر وجود داره که نیاز به هیچ کد نویسی و حرکت خاصی نیست
    گرچه من متوجه نشدم چرا برنامه نویس جوان این همه مسئله رو پیچوندن
    و با تشکر از آقا دانیال که پست من رو حذف کردن !!!!!
    روی Solution خودتون راست کلیک کرده و properties بزنید
    در پنجره ی ظاهر شده در بخش startup project گزینه ی Multiple startup projects روانتخاب کنید
    حالا بسادگی می تونید پروژه هایی که دلتون میخواد رو انتخاب کنید یا حذف کنید و یا حتی ترتیب اجرای اونها رو تغییر بدید.

    چقدر میشه زندگی رو ساده کرد !!!!
    شرمنده اصلا تو باغ نیستی به زار به کارمون برسیم

  9. #9
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    یک فایل Resource به پروژه خودتون اضافه کنید
    دست شما درد نکنه ولی کار جالبی نیست .
    چون تعداد ارجاعات به این فایل ها زیاد هستش و هر دفعه این عملیات انجام دادن از سرعت برنامه کم می کنه.
    و بلا اخره یه فایل EXE استخراج می شه که برای کراکرهای نرم افزار خیلی به درد بخور می شه و کدهای برنامه رو بیرون می کشن.

    دیگه نا امید شدم و فکر کنم باید همه پروژه ها رو در قابل یه پروژه واحد انجام بدم

  10. #10
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    36

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??

    سلام

    فکر کنم شما باید از نرم افزارهایی که عملیات Merge را انجام میدن استفاده کنید که اغلب عمل مبهم سازی را هم انجام میدن.
    خود میکروسافت هم یک نرم افزار ادغام کننده داره که فقط کارش ادغام و پک کردنه فایلهاست که من استفاده نکردم.اسمش یادم نیست سرچ کنید پیدا میکنید.
    نرم افزارهای دیگری مثل SmartAssembly و Crypto Obfuscator هم هست که هم کار مبهم سازی یا Dotfuscator را انجام میدن و هم کار ادغام یا همون Merge
    بنده قبلا یک پروژه تحت پایگاه داده که از چندین فایل تشکیل میشد را توسط نرم افزار Crypto Obfuscator مبهم و پک کردم.سرعت برنامم هم بالاتر برد چون قابلیت فشرده سازی هم داره!!!
    البته فایلهایی که من ادغام کردم dll بودن که توی سه تا فایل exe مشترک بود و همچنین از کلید خصوصی هم استفاده کردم که نرم افزار Crypto Obfuscator برای همه ی اینها امکاناتی داره.

    البته حواستون باشه که نسخه بدون کرکش روی فایل اجرائیتون محدودیت زمانی میذاره!!!

  11. #11
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ادغام exeهای چند Project در قالب یک فایل exe ؟??


تاپیک های مشابه

  1. پاسخ: 9
    آخرین پست: چهارشنبه 16 اردیبهشت 1394, 01:12 صبح
  2. حرفه ای: ادغام چند فایل dll در یک فایل exe
    نوشته شده توسط makan.azimi در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 15 فروردین 1392, 13:05 عصر
  3. اسکن اسناد چند صفحه ای در قالب یک فایل
    نوشته شده توسط TAVANA002 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 5
    آخرین پست: یک شنبه 24 مرداد 1389, 08:05 صبح
  4. ادغام چند فایل در یک فایل exe البته با دلفی
    نوشته شده توسط jaberaghidat در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: چهارشنبه 28 آذر 1386, 14:57 عصر
  5. پاسخ: 4
    آخرین پست: چهارشنبه 14 بهمن 1383, 08:28 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •