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

نام تاپیک: ایجاد فایل خروجی exe در Runtime

  1. #1
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    ایجاد فایل خروجی exe در Runtime

    سلام
    وقت به خیر
    من می خوام یه برنامه بنویسم که در زمان اجرا فایل های exe تولید کنه.
    بگذازید واضح تر توضیح بدم:
    برنامه ی که می خوام یه چیزی شبیه برنامه ی picture 2 exe است.
    می خوام در زمان اجرا یک سری خصوصیات رو برای برنامه ام تعریف کنم و برنامه ی من با توجه به این پارامتر ها یک فای اجرایی تولید کنه.
    تو اینترنت گشتم چیزی دستگیرم نشد.
    اگه می شه راهنمایی کنید یا منبعی رو برای مطالعه معرفی کنید.
    ممنون از همه تون.

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: ایجاد فایل خروجی exe در Run Time

    ببینید اگر برنامه اصلی شما با Net Framework. نوشته شده باشد، در جایی اجرا میشود که Net Framework. نصب باشد.
    و در صورتی که Net Framework. نصب باشد، کامپایلرهای آن نیز وجود دارد.
    شما کد برنامتون رو بنویسید، و سپس در برنامه با توجه به شرایط قسمتهایی از آن را بنویسید و بنا به مقتضیات کار قسمت هایی از کد را تغییر دهید.
    سپس آنرا کامپایل کنید. با فایل CSC و ارسال پارامتر.
    یعنی در نهایت سورس کد و تغییرات رو با پسوند cs. ذخیره کنید و با این فایل آن سورس رو کامپایل کنید، و یک EXE تحویل بگیرید.

  3. #3
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: ایجاد فایل خروجی exe در Run Time

    ممنون از پاسخ سریع شما
    بله می خوام با سی شارپ و .net بنویسم.

    تازه زبان C#‎‎ رو شروع کردم.قبلا جاوا کار می کردم.
    می شه لطفا مراحل کار رو با جزییات بیشتری برام توضیح بدید
    ممنون

  4. #4

    نقل قول: ایجاد فایل خروجی exe در Run Time

    میتونید از فضای نام CodeDom استفاده کنید.
    آقای نصیری توی سایتشون یه آموزش کوچیک در این رابطه دادن فکر کنم کارتون رو راه بندازه.
    http://vahidnasiri.blogspot.com/2009...g-post_16.html

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: ایجاد فایل خروجی exe در Run Time

    یک روش خوب رو هم که دوستان معرفی کردند.

  6. #6
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: ایجاد فایل خروجی exe در Run Time

    اقا ممنون

    راه حل بسیار عالی بود.

    من الان می تونم برنامه های تحت کنسول رو به راحتی تولید کنم.

    اما یک مساله ی دیگه:
    من می خوام فایل خروجی ام فرم داشته باشه win 32
    همون طور که اطلاع دارید کد ما برنامه های ویندوزی تو سی شارپ تو 3 تا فایل ذخیره می شن.
    کد های موجو در این 3 تا فایل رو باید با چه ترتیبی تو این برنامه قرار بدم تا عمل کنه؟
    لطفا راهنمایی ر مورد این نوع برنامه ها ارائه کنید.
    بسیار بسیار متشکرم.

  7. #7
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: ایجاد فایل خروجی exe در Run Time

    سلام
    دو فایل cs رو می تونی ادغام کنی.برای این منظور نمیخواد کار پیچیده ای انجام بدی.فقط تمام محتویات درون namespace یکی رو، در درون namespace دیگری کپی کن.همین!در ضمن در این حالت دیگه احتمالا فایلت در حالت Design خوده VS باز نمیشه!
    موفق باشی

  8. #8
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: ایجاد فایل خروجی exe در Run Time

    من نتونستم این 3 تا فایل رو تلفیق کنم!
    3 تا فایل هست:
    program.cs
    form1.cs
    form1.designer.cs
    تو هر کدومش هم کد هایی هست
    نمی دونم چه طور می شه این کد ها رو با کد زیری مخلوط کرد:
    لطفا راهنایی کنید:

       


    using System;
    using System.Collections.Generic;
    //دو فضاي نامي كه براي اين منظور اضافه شده‌اند
    using Microsoft.CSharp;
    using System.CodeDom.Compiler;

    namespace compilerTest
    {
    class Program
    {
    static void compileIt1()
    {
    //سورس كد ما جهت كامپايل
    string source =
    @"
    namespace Foo
    {
    public class Bar
    {
    static void Main(string[] args)
    {
    Bar.SayHello();
    }

    public static void SayHello()
    {
    System.Console.WriteLine(""Hello World"");
    }
    }
    }
    ";

    //تعيين نگارش كامپايلر مورد استفاده
    Dictionary<string, string> providerOptions = new Dictionary<string, string>
    {
    {"CompilerVersion", "v3.5"}
    };
    //تعيين اينكه كد ما سي شارپ است
    CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);

    //تعيين اينكه خروجي يك فايل اجرايي است بعلاوه مشخص سازي محل ذخيره سازي فايل نهايي
    CompilerParameters compilerParams = new CompilerParameters
    {
    OutputAssembly = "D:\\Foo.EXE",
    GenerateExecutable = true
    };

    //عمليات كامپايل در اينجا صورت مي‌گيرد
    CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source);

    //اگر خطايي وجود داشته باشد نمايش داده خواهد شد
    Console.WriteLine("Number of Errors: {0}", results.Errors.Count);
    foreach (CompilerError err in results.Errors)
    {
    Console.WriteLine("ERROR {0}", err.ErrorText);
    }
    }

    static void Main(string[] args)
    {
    compileIt1();

    Console.WriteLine("Press a key...");
    Console.ReadKey();
    }
    }
    }



  9. #9
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: ایجاد فایل خروجی exe در Run Time

    سلام
    سایت که ف ی ل ت ر ه
    سوال من هم که بی جواب موند
    جون من یکی بیاد اوضاع رو درست کنه

  10. #10

    نقل قول: ایجاد فایل خروجی exe در Runtime

    دوست عزیز ببخش دیر شد. هم یه مقدار مشغله شغلی بود هم ف...ر شدن سایت.
    این نمونه کوچیک رو یه نگاه بنداز امیدوارم واسه شروع کارتو راه بندازه. وقت نداشتم کاملش کنم.
    فایل های ضمیمه فایل های ضمیمه

  11. #11
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: ایجاد فایل خروجی exe در Runtime

    دوست عزیز من واقعا ممنونم.لطف کردید.
    یه ابهامی برام پیش اومده اگه لطف کنید رفع ش کنید ممنون می شم.

    شما تو این قسمت کد:

    string Source = @"using System;
    using System.Drawing;
    using System.Windows.Forms;

    namespace Sample
    {

    static class Program
    {
    [STAThread]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(true );
    Application.Run(new Form1());
    }
    }


    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    Button btn = new Button();" + "\n" +
    "btn.Text = \"OK\";\n" +
    "btn.Name = \"btnOK\";\n" +
    @"btn.Location = new Point(90, 80);
    btn.Click += new EventHandler(btn_Click);
    this.Controls.Add(btn);
    }

    void btn_Click(object sender, EventArgs e)
    {" + "\n" +
    "MessageBox.Show(\"btnOK Clicked\");\n" + @"
    }
    }




    partial class Form1
    {
    private System.ComponentModel.IContainer components = null;
    protected override void Dispose(bool disposing)
    {
    if (disposing && (components != null))
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    }

    private void InitializeComponent()
    {
    this.SuspendLayout();
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(250, 200);
    this.MaximizeBox = false;
    this.Load += new System.EventHandler(this.Form1_Load);
    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;" +
    "this.Text = \"This is Sample\";" +
    @"this.ResumeLayout(false);
    this.PerformLayout();
    }
    }
    }";


    قمست قرمز رنگ برام مبهمه
    چرا به جای public ،Partial تعریف شده؟

  12. #12

    نقل قول: ایجاد فایل خروجی exe در Runtime

    Partial یک کلمه کلیدیِ که برای بخش بخش کردن یک کلاس به کار میره یعنی اینکه کدهای یک کلاس رو یکجا و در یک فایل ننوشت و هر بخش از کلاس جدا نوشته بشه. چون من این کدهای رو از فایلهای یک فرم Copy کردم از این کلمه استفاده شده ، شما میتونید کد رو بصورت زیر هم بنویسید:

    string Source = @"using System;
    using System.Drawing;
    using System.Windows.Forms;

    namespace Sample
    {
    static class Program
    {
    [STAThread]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(true );
    Application.Run(new Form1());
    }
    }

    public class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    Button btn = new Button();" + "\n" +
    "btn.Text = \"OK\";\n" +
    "btn.Name = \"btnOK\";\n" +
    @"btn.Location = new Point(90, 80);
    btn.Click += new EventHandler(btn_Click);
    this.Controls.Add(btn);
    }

    void btn_Click(object sender, EventArgs e)
    {" + "\n" +
    "MessageBox.Show(\"btnOK Clicked\");\n" + @"
    }


    private System.ComponentModel.IContainer components = null;
    protected override void Dispose(bool disposing)
    {
    if (disposing && (components != null))
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    }

    private void InitializeComponent()
    {
    this.SuspendLayout();
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(250, 200);
    this.MaximizeBox = false;
    this.Load += new System.EventHandler(this.Form1_Load);
    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;" +
    "this.Text = \"This is Sample\";" +
    @"this.ResumeLayout(false);
    this.PerformLayout();
    }
    }
    }";

  13. #13

    نقل قول: ایجاد فایل خروجی exe در Runtime

    ---------------------------------
    آخرین ویرایش به وسیله Omid.Mafakher : چهارشنبه 11 مهر 1397 در 10:06 صبح

  14. #14
    کاربر دائمی آواتار ztx4
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    505

    نقل قول: ایجاد فایل خروجی exe در Runtime

    نقل قول نوشته شده توسط Omid.Mafakher مشاهده تاپیک
    برای تولید کد می تونی از تکنولوژی T4 استفاده کنی و برای Build کردن اون هم از ابزاری به نام Microsoft.CSharp.CSharpCodeProvider استفاده کنی

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

  15. #15

    نقل قول: ایجاد فایل خروجی exe در Runtime

    ----------------------------------
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg T4.jpg‏ (90.2 کیلوبایت, 33 دیدار)
    آخرین ویرایش به وسیله Omid.Mafakher : چهارشنبه 11 مهر 1397 در 10:04 صبح

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

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