PDA

نسخه کامل مشاهده نسخه کامل : تبدیل ستاپ پروژه به صورت پرتایل



shadmehrshadow1
08-10-2016, 11:14
سلام
برنامه هایی که ساخته میشه یا نصبی هستند یا به صورت پرتابل.
ایجاد و تبذیل پروژه رو به صورت نصبی بلد هستم.
میخواستم ببینم چه جوری میشه پروژه رو به صورت پرتابل ایجاد کرد که نیاز به نصب نداشته باشه. برنامه دارای dll هم هست .
ممنون.

shadmehrshadow1
08-10-2016, 18:21
توی نت چندتا برنامه پیدا کردم. برای مثال vmware thin app که با این برنامه انجام دادم فایل اجرایی که داد رو زدم پیغام خطا داد و برنامه اجرا نشد. البته فایلی که داد هم حجمش به طور عجیبی بالا بود.
یا برنامه cameyo که خب بهتر عمل کرد و برنامه اجرا شد . ولی خب قبل از اجرا اول اسم برنامه cameyo اومد و بعد از چند ثانیه برنامه اصلی باز شد.
البته روی سیستم دیگه امتحان نکردم نمیدونم درست عمل می کنه یا نه.
با برنامه winrar هم امتحان کردم که پسوند فایلی که میده exe نست . Sfx باشه اگه اشتباه نکنم.

خود ویژوآل استودیو چیزی رو برای این کار نداره ؟
ممنون میشم اکه دوستان راهنمایی کنند.

shadmehrshadow1
10-10-2016, 15:30
از دوستان کسی نیست راهنمایی کنه؟:n37:

_H2_
16-10-2016, 00:19
سلام
برای کارکرد صحیح برنامه تان باید، نسخه مناسب دات نت در رایانه مقصد نصب باشد.
اینکه بدیهی است وحرفی رویش نداریم.

می ماند خود برنامه.
برنامه های دات نت (بجز نصب framework) ذاتا مشکلی در portable بودن ندارند.
برنامه شما با تمام dll هایش اگر به رایانه مقصد کپی شود، کار خواهد کرد، اگر کار نمیکند باید ببینیم چه کرده اید؟!

اگر dll هایتان دات نتی هستند و میخواهید همه را با exe تان یکی کنید، تا یک فایل به مردم بدهید که راحت در فلش شان جابجا و اجرا کنند، مشکلی نیست.
میتوانید از برنامه خط فرمانی رایگان خود مایکروسافت با نام ILMerge استفاده کنید.
این برنامه امکان یکپارچه کردن dll های دات نتی را درون یک exe دات نتی دارد.
برنامه های فرعی غیر رایگان دیگری هم مانند reactor هم در کنار امکانات اصلی خود، حتی این امکان را دارند.

درنهایت شما میتوانید با یک exe و یک فایل config کوچک برنامه تان را در بیشتر شرایط اجرا کنید.
(فایل config کمک میکند تا با نصب بودن framework نسخه های بالاتر هم برنامه تان کار کند...)

شب خوش.

shadmehrshadow1
17-10-2016, 12:02
سلام
برای کارکرد صحیح برنامه تان باید، نسخه مناسب دات نت در رایانه مقصد نصب باشد.
اینکه بدیهی است وحرفی رویش نداریم.

می ماند خود برنامه.
برنامه های دات نت (بجز نصب framework) ذاتا مشکلی در portable بودن ندارند.
برنامه شما با تمام dll هایش اگر به رایانه مقصد کپی شود، کار خواهد کرد، اگر کار نمیکند باید ببینیم چه کرده اید؟!

اگر dll هایتان دات نتی هستند و میخواهید همه را با exe تان یکی کنید، تا یک فایل به مردم بدهید که راحت در فلش شان جابجا و اجرا کنند، مشکلی نیست.
میتوانید از برنامه خط فرمانی رایگان خود مایکروسافت با نام ILMerge استفاده کنید.
این برنامه امکان یکپارچه کردن dll های دات نتی را درون یک exe دات نتی دارد.
برنامه های فرعی غیر رایگان دیگری هم مانند reactor هم در کنار امکانات اصلی خود، حتی این امکان را دارند.

درنهایت شما میتوانید با یک exe و یک فایل config کوچک برنامه تان را در بیشتر شرایط اجرا کنید.
(فایل config کمک میکند تا با نصب بودن framework نسخه های بالاتر هم برنامه تان کار کند...)

شب خوش.

سلام
ممنونم :n16:
یعنی اگر از برنامه ILMerge استفاده کنم. دیگر نیازی به نصب freamwork نداره؟
البته وقتی ILMerge رو نصب کردم و اجرا کردم. یک لحظه پنجره ای شبیه به cmd باز شد و بلا فاصله بسته شد. نمیدونمدباید همین طور باشه و نحوه استفاده ازش رو بلد نیستم یا مشکلی داره.

عــــلی
18-10-2016, 10:10
سلام، میتونید از پکیج Costura.Fody هم استفاده کنید.فقط کافیه پکیج رو از طریق package manager ویژوال استادیو به پروژه ای که میخواهید dll هاش مرج بشه اضافه کنید و بیلد کنید.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

_H2_
20-10-2016, 22:51
سلام

یعنی اگر از برنامه ILMerge استفاده کنم. دیگر نیازی به نصب freamwork نداره؟

همانطورکه اول بحثش را جدا ومشخص کردم، دات نت فریم ورک باید نصب باشد، آن بحثش مشخص است.
حرف من فقط روی dll هایی است که خودتان (از nuget یا به عنوان لایه بندی نرم افزار ساخته اید و...) به پروژه اضافه کرده اید.

مثلا برنامه ای دارید که یک dllبابت zip دارد ویکی بابت log برداری و یکی بابت لایه هسته برنامه تان و...
این ها میتوانید با exe تان یکی کنید. (این را هم فقط برای برنامه های کوچک و دم دستی پیشنهاد میکنم ...)

برنامه ilmerge همانطورکه اشاره کردم خط فرمانی است، یعنی UI و دکمه و textbox و کلیک و... ندارد.
باید cmd را اجرا کنید و فرامین را با سوییچ های مورد نیاز در cmd تایپ کنید.
مثلا شبیه این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده help برنامه های خط فرمانی میتوانید از سوییچ "?/" استفاده کنید.
البته تلاش هایی هم شده که برای این برنامه UI ساخته شود، مثلا
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

میتوانید هم از برنامه ها وگزینه های ساده تری مانند Costura.Fody (که دوستمان معرفی کردند) با reactor و... استفاده کنید که کاربری راحت تری دارند.

shadmehrshadow1
08-11-2016, 20:24
سلام


همانطورکه اول بحثش را جدا ومشخص کردم، دات نت فریم ورک باید نصب باشد، آن بحثش مشخص است.
حرف من فقط روی dll هایی است که خودتان (از nuget یا به عنوان لایه بندی نرم افزار ساخته اید و...) به پروژه اضافه کرده اید.

مثلا برنامه ای دارید که یک dllبابت zip دارد ویکی بابت log برداری و یکی بابت لایه هسته برنامه تان و...
این ها میتوانید با exe تان یکی کنید. (این را هم فقط برای برنامه های کوچک و دم دستی پیشنهاد میکنم ...)

برنامه ilmerge همانطورکه اشاره کردم خط فرمانی است، یعنی UI و دکمه و textbox و کلیک و... ندارد.
باید cmd را اجرا کنید و فرامین را با سوییچ های مورد نیاز در cmd تایپ کنید.
مثلا شبیه این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده help برنامه های خط فرمانی میتوانید از سوییچ "?/" استفاده کنید.
البته تلاش هایی هم شده که برای این برنامه UI ساخته شود، مثلا
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

میتوانید هم از برنامه ها وگزینه های ساده تری مانند Costura.Fody (که دوستمان معرفی کردند) با reactor و... استفاده کنید که کاربری راحت تری دارند.

خیلی ممنون بابت توضیحاتتون :n16:
فقط برای DLL ها میشه این کار رو کرد یا اینکه مثلا میشه برای فایل های معمولی که باید در مسیر نصب برنامه وجود داشته باشند هم ازش استفاده کرد؟

_H2_
12-11-2016, 02:55
سلام

فایل های معمولی که باید در مسیر نصب برنامه وجود داشته باشند هم ازش استفاده کرد؟

طبیعتا انجام این کار برای برنامه ثالث سخت است.
چون اگر برنامه دیگری بیاید و این فایلها را درون exe شما جا دهد ولی شما در زمان کدنویسی بروید دستور دهید فایل را از هارد و کنار exe تان برداشته و استفاده کنید، هیچ فایده ای ندارد
این مورد به شیوه کدنویسی شما وابسته است، طبیعتا وقتی این فایل ها را درون exe یا dll تان جا میدهید، باید کدنویسی تان هم کمی فرق کند ودیگر کاری به مسبر فایل در هارد نداشته باشد(چون فایل آنجا نیست!!!)
برنامه ثانویه ای بخواهد این کار را برای شما انجام دهد وبرنامه شما کار هم بکند، ارزشی ندارد، چون باید برنامه تان را قبل اجرا در جایی در هارد Extract کند و سپس اجرا کند...
.
ولی...
.
در اغلب موارد، فایل هایی که برای کار در خود دات نت نیاز دارید وویرایش هم ندارد را خودتان میتوانید درون exe و dll هایتان قرار دهید واز آنها استفاده کنید.
مثلاً یک فایل متنی یا xml که بابت زبان های برنامه دارید، تصاویر مورد استفاده در خود برنامه ، فایل های wav کوچکی که در زمان رخدادهای خاص پخش شان میکنید...
همه اینها را خودتان می توانید در Embedded Resources های اسمبلی هایتان جا دهید.
عبارت Embedded Resources را جستجوکنید.
موفق باشید وشب خوش.