سلام
برنامه هایی که ساخته میشه یا نصبی هستند یا به صورت پرتابل.
ایجاد و تبذیل پروژه رو به صورت نصبی بلد هستم.
میخواستم ببینم چه جوری میشه پروژه رو به صورت پرتابل ایجاد کرد که نیاز به نصب نداشته باشه. برنامه دارای dll هم هست .
ممنون.
سلام
برنامه هایی که ساخته میشه یا نصبی هستند یا به صورت پرتابل.
ایجاد و تبذیل پروژه رو به صورت نصبی بلد هستم.
میخواستم ببینم چه جوری میشه پروژه رو به صورت پرتابل ایجاد کرد که نیاز به نصب نداشته باشه. برنامه دارای dll هم هست .
ممنون.
توی نت چندتا برنامه پیدا کردم. برای مثال vmware thin app که با این برنامه انجام دادم فایل اجرایی که داد رو زدم پیغام خطا داد و برنامه اجرا نشد. البته فایلی که داد هم حجمش به طور عجیبی بالا بود.
یا برنامه cameyo که خب بهتر عمل کرد و برنامه اجرا شد . ولی خب قبل از اجرا اول اسم برنامه cameyo اومد و بعد از چند ثانیه برنامه اصلی باز شد.
البته روی سیستم دیگه امتحان نکردم نمیدونم درست عمل می کنه یا نه.
با برنامه winrar هم امتحان کردم که پسوند فایلی که میده exe نست . Sfx باشه اگه اشتباه نکنم.
خود ویژوآل استودیو چیزی رو برای این کار نداره ؟
ممنون میشم اکه دوستان راهنمایی کنند.
سلام
برای کارکرد صحیح برنامه تان باید، نسخه مناسب دات نت در رایانه مقصد نصب باشد.
اینکه بدیهی است وحرفی رویش نداریم.
می ماند خود برنامه.
برنامه های دات نت (بجز نصب framework) ذاتا مشکلی در portable بودن ندارند.
برنامه شما با تمام dll هایش اگر به رایانه مقصد کپی شود، کار خواهد کرد، اگر کار نمیکند باید ببینیم چه کرده اید؟!
اگر dll هایتان دات نتی هستند و میخواهید همه را با exe تان یکی کنید، تا یک فایل به مردم بدهید که راحت در فلش شان جابجا و اجرا کنند، مشکلی نیست.
میتوانید از برنامه خط فرمانی رایگان خود مایکروسافت با نام ILMerge استفاده کنید.
این برنامه امکان یکپارچه کردن dll های دات نتی را درون یک exe دات نتی دارد.
برنامه های فرعی غیر رایگان دیگری هم مانند reactor هم در کنار امکانات اصلی خود، حتی این امکان را دارند.
درنهایت شما میتوانید با یک exe و یک فایل config کوچک برنامه تان را در بیشتر شرایط اجرا کنید.
(فایل config کمک میکند تا با نصب بودن framework نسخه های بالاتر هم برنامه تان کار کند...)
شب خوش.
سلامنوشته شده توسط _H2_ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ممنونم
یعنی اگر از برنامه ILMerge استفاده کنم. دیگر نیازی به نصب freamwork نداره؟
البته وقتی ILMerge رو نصب کردم و اجرا کردم. یک لحظه پنجره ای شبیه به cmd باز شد و بلا فاصله بسته شد. نمیدونمدباید همین طور باشه و نحوه استفاده ازش رو بلد نیستم یا مشکلی داره.
سلام، میتونید از پکیج Costura.Fody هم استفاده کنید.فقط کافیه پکیج رو از طریق package manager ویژوال استادیو به پروژه ای که میخواهید dll هاش مرج بشه اضافه کنید و بیلد کنید.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
همانطورکه اول بحثش را جدا ومشخص کردم، دات نت فریم ورک باید نصب باشد، آن بحثش مشخص است.نوشته شده توسط shadmehrshadow1 [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
حرف من فقط روی dll هایی است که خودتان (از nuget یا به عنوان لایه بندی نرم افزار ساخته اید و...) به پروژه اضافه کرده اید.
مثلا برنامه ای دارید که یک dllبابت zip دارد ویکی بابت log برداری و یکی بابت لایه هسته برنامه تان و...
این ها میتوانید با exe تان یکی کنید. (این را هم فقط برای برنامه های کوچک و دم دستی پیشنهاد میکنم ...)
برنامه ilmerge همانطورکه اشاره کردم خط فرمانی است، یعنی UI و دکمه و textbox و کلیک و... ندارد.
باید cmd را اجرا کنید و فرامین را با سوییچ های مورد نیاز در cmd تایپ کنید.
مثلا شبیه این:
برای مشاهده help برنامه های خط فرمانی میتوانید از سوییچ "?/" استفاده کنید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته تلاش هایی هم شده که برای این برنامه UI ساخته شود، مثلا
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
میتوانید هم از برنامه ها وگزینه های ساده تری مانند Costura.Fody (که دوستمان معرفی کردند) با reactor و... استفاده کنید که کاربری راحت تری دارند.
خیلی ممنون بابت توضیحاتتوننوشته شده توسط _H2_ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
فقط برای DLL ها میشه این کار رو کرد یا اینکه مثلا میشه برای فایل های معمولی که باید در مسیر نصب برنامه وجود داشته باشند هم ازش استفاده کرد؟
سلام
طبیعتا انجام این کار برای برنامه ثالث سخت است.فایل های معمولی که باید در مسیر نصب برنامه وجود داشته باشند هم ازش استفاده کرد؟
چون اگر برنامه دیگری بیاید و این فایلها را درون exe شما جا دهد ولی شما در زمان کدنویسی بروید دستور دهید فایل را از هارد و کنار exe تان برداشته و استفاده کنید، هیچ فایده ای ندارد
این مورد به شیوه کدنویسی شما وابسته است، طبیعتا وقتی این فایل ها را درون exe یا dll تان جا میدهید، باید کدنویسی تان هم کمی فرق کند ودیگر کاری به مسبر فایل در هارد نداشته باشد(چون فایل آنجا نیست!!!)
برنامه ثانویه ای بخواهد این کار را برای شما انجام دهد وبرنامه شما کار هم بکند، ارزشی ندارد، چون باید برنامه تان را قبل اجرا در جایی در هارد Extract کند و سپس اجرا کند...
.
ولی...
.
در اغلب موارد، فایل هایی که برای کار در خود دات نت نیاز دارید وویرایش هم ندارد را خودتان میتوانید درون exe و dll هایتان قرار دهید واز آنها استفاده کنید.
مثلاً یک فایل متنی یا xml که بابت زبان های برنامه دارید، تصاویر مورد استفاده در خود برنامه ، فایل های wav کوچکی که در زمان رخدادهای خاص پخش شان میکنید...
همه اینها را خودتان می توانید در Embedded Resources های اسمبلی هایتان جا دهید.
عبارت Embedded Resources را جستجوکنید.
موفق باشید وشب خوش.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)