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

نام تاپیک: تولید فایل exe داخل پروزه!

  1. #1
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    تولید فایل exe داخل پروزه!

    من یه پروژه دارم که قراره از یه سری کارا که میکنم که الان مهم نیست یه سری کد تولید کنه و بعدشم میخوام که از این فایل کد سی شارپ(.cs) یه فایل exe (اجرایی) تولید کنه...
    حالا چیکار کنم؟!


    با تشکر ...

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: تولید فایل exe داخل پروزه!

    یعنی میخواهید کد رو به صورت Runtime کامپایل کنید ؟

  3. #3

    نقل قول: تولید فایل exe داخل پروزه!

    نقل قول نوشته شده توسط amir-yeketaz مشاهده تاپیک
    من یه پروژه دارم که قراره از یه سری کارا که میکنم که الان مهم نیست یه سری کد تولید کنه و بعدشم میخوام که از این فایل کد سی شارپ(.cs) یه فایل exe (اجرایی) تولید کنه... حالا چیکار کنم؟! با تشکر ...
    سلام.
    فرض می کنم که EXE ی مورد نظر رو می خواهید توسط C#‎‎‎ Compiler نسخه 4 ایجاد کنید. برای اینکار، می تونید بدین شکل عمل کنید:

    CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp", new Dictionary<string, string> { { "CompilerVersion", "v4.0" } });
    CompilerParameters parameters = new CompilerParameters
    {
    GenerateExecutable = true,
    OutputAssembly = "output.exe",
    };

    parameters.ReferencedAssemblies.AddRange(new string[] { "System.Windows.Forms.dll" });

    string source =
    "using System;" +
    "using System.Windows.Forms;" +
    "namespace Whatever" +
    "{" +
    " static class Program" +
    " {" +
    " [STAThread]" +
    " static void Main()" +
    " {" +
    " MessageBox.Show(\"Test\");" +
    " }" +
    " }" +
    "}";

    CompilerResults results = provider.CompileAssemblyFromSource(parameters, source);


    کد فوق، EXE ای به اسم output.exe ایجاد می کنه که پس از اجرا کردن، باعث باز شدن پنجره ای و نمایش عبارت Test در اون پنجره میشه...
    تنها نکته ای که باید در کدتون منظور کنید اینه که results نهایی رو چک کنید تا فاقد Error باشه، در غیر اینصورت EXE ی مورد نظر تولید نخواهد شد...

    موفق باشید.

  4. #4
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    نقل قول: تولید فایل exe داخل پروزه!

    ایول استاد ... یعنی دم ایرانی های خودمون گرم ... اینجام پرسیدم و ببینید چقدر مانو ابله فرض کردن!!! ...بیخیال ...

    میشه یه لینکی چیزی بدین تا من بیشتر در باب این کلاسایی که استفاده کردین اطلاعات کسب کنم؟(البته به غیر از MSDN ) ... یا اصن اگه وقت دارین خودتون توضیح بدین؟!

    ببخشین ... یه چیز دیگه؟! ... چیکار کنم این پنجره ی کنسول نیاد بالا؟! ... منظورم اینه که وقتی من اون output رو اجرا میکنم اولش صفحه ی کنسول میاد که من چون میخوام ویندوز فرم باشه نمیخوام که پنجره ی کنسول باز بشه ...
    آخرین ویرایش به وسیله amir-yeketaz : چهارشنبه 13 مهر 1390 در 23:28 عصر

  5. #5

    نقل قول: تولید فایل exe داخل پروزه!

    نقل قول نوشته شده توسط amir-yeketaz مشاهده تاپیک
    ایول استاد ... یعنی دم ایرانی های خودمون گرم ... اینجام پرسیدم و ببینید چقدر مانو ابله فرض کردن!!! ...بیخیال ... میشه یه لینکی چیزی بدین تا من بیشتر در باب این کلاسایی که استفاده کردین اطلاعات کسب کنم؟(البته به غیر از MSDN ) ... یا اصن اگه وقت دارین خودتون توضیح بدین؟!
    سلام
    به نظر من، سوال رو خوب مطرح نکرده اید (با کمال احترام) و فرد اولی که به سوال شما پاسخ داده، باعث شده که مسیر پاسخ های بعدی تغییر کرده باشه. سوال شما میگه "چطوری از طریق یک فایل .cs میتونم فایل executable ایجاد کنم؟" و خوب، پاسخ این سوال، همونی هستش که اونجا دریافت کرده اید. :) هر وقت چنین اتفاقی افتاد، بدونید که سوال رو روشن مطرح نکرده اید و سعی کنید سوال رو بهتر مطرح کنید.


    • در هر حال، در خط اول کد، یک CodeDomProvider انتخاب میشه (که پارامتر اول زبان مورد نظر و پارامتر دوم، Option هایی هستش که میخوام به Provider پاس کنم).
    • خط دوم، کلاسی از نوع CompilerParameter میسازه، GenerateExecutable اونو true میذاره که فایل exe ایجاد بشه و نه DLL، پارامتر بعدیش هم نام فایل خروجی رو تعیین میکنه. در نهایت، با استفاده از ReferenceAssemblies کلیه Reference های مورد نظرم رو به Compiler معرفی می کنم.
    • سپس در خط 10-23 کد مورد نظرم رو بصورت string نوشتم...
    • در نهایت، با استفاده از متود CompileAssemblyFromSource، خروجی مورد نظرم رو تولید کرده ام.

    موفق باشید.

  6. #6
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    نقل قول: تولید فایل exe داخل پروزه!

    ببخشین ... یه چیز دیگه؟! ... چیکار کنم این پنجره ی کنسول نیاد بالا؟! ... منظورم اینه که وقتی من اون output رو اجرا میکنم اولش صفحه ی کنسول میاد که من چون میخوام ویندوز فرم باشه نمیخوام که پنجره ی کنسول باز بشه ...
    اینم جواب بدین ممنون میشم ...

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

    کمک کنین خواهشا!

    در این لحظه درست شد!

    CompilerOptions = "/target:winexe"
    آخرین ویرایش به وسیله amir-yeketaz : پنج شنبه 14 مهر 1390 در 01:14 صبح

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

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