PDA

View Full Version : سوال: تبدیل برنامه به فایل های DLL



sinayas
چهارشنبه 11 اردیبهشت 1392, 17:12 عصر
سلام

یک برنامه نوشتم که شامل یک فرم مادر و 25 تا فرم فرزنده .

قصدم اینه که فرم مادر رو به صورت کامل کامپای کنم و فایل اجرایی برنامه بشه .
بقیه فرم ها هم یه صورت DLL باشه که اگه بعدن خواستم تییری توش بدم راحت باشه .

اگه کمک کنید و من رو راهنمایی کنید که چجوری فرم هارو تبدیل کنم ممنون میشم .

پست های مختلفی در این مورد بود ولی به صورت کامل راهنمایی نکرده بودن که چه کاری انجام بدیم .

ممنون میشم کمک کنید

sinayas
چهارشنبه 11 اردیبهشت 1392, 22:08 عصر
از دوستان کسی نیست که این کار رو انجام داده باشه ؟

esafb52
چهارشنبه 11 اردیبهشت 1392, 22:14 عصر
سلام فکر نکنم که فرم رو بتونی dll کنی و بعد هر وقت تغییر دادی بیای اون رو جایگزین کنی و برنامه ات آپدیت بشه!!!شما میتونی مثلا اگه تو برنامه یه کلاس داری اون رو dll کنی و بعد .........

aliasghar2
چهارشنبه 11 اردیبهشت 1392, 23:29 عصر
باید تمام فرم ها وکد هاتو توی یه پروژه ClassLibrary کپی کن بعد اجرا بگیری خیلی راحته

sinayas
جمعه 13 اردیبهشت 1392, 16:01 عصر
ممنون از راهنمایی شما .
اگه امکان داره بیشتر توضیح بدین .

وقتی این کد ها رو در پروژه کپی میکنم موقع build از بیشتر کد ها ارور میگیره .

کامبیز اسدزاده
جمعه 13 اردیبهشت 1392, 16:09 عصر
خب شما در ابتدا به Properties پروژه DLL هاتون رفته و گزینه Output Type رو کنترل کنید که باید روی Class Library باشد و بعد Build نمایید.
بعد از این کار در پروژه اصلیتون که فایل Exe رو ایجاد میکنه از قسمت Reference وارد و فراخوانیش کنید.

نباید در این صورت موردی داشته.

sinayas
شنبه 14 اردیبهشت 1392, 16:24 عصر
ممنون از شما .
نوع پروژه ای که برای شروع انتخاب کردم Class Library بود . از قسمت Properties هم چک کردم . خروجی همون class library بود . ولی همچنان مشکل در Build کردن وجود داره .
مثلا از تمام اجزای داخل فرم اشکال میگیره . از گرید ویو - تکست باکس و ...

اگه راهنمایی بکنید ممنون میشم .

کامبیز اسدزاده
شنبه 14 اردیبهشت 1392, 16:33 عصر
ممنون از شما .
نوع پروژه ای که برای شروع انتخاب کردم Class Library بود . از قسمت Properties هم چک کردم . خروجی همون class library بود . ولی همچنان مشکل در Build کردن وجود داره .
مثلا از تمام اجزای داخل فرم اشکال میگیره . از گرید ویو - تکست باکس و ...

اگه راهنمایی بکنید ممنون میشم .

خب لطفا نوع Net Framework که در پروژه اصلی و فایل DLL استفاده کردین رو مقایسه کنید باید یکسان باشند !

sinayas
شنبه 14 اردیبهشت 1392, 17:40 عصر
هر دو نسخه 4.5 هستن .
ولی خوب اشکال میگیره .

ممنون که کمک میکنید .

کامبیز اسدزاده
شنبه 14 اردیبهشت 1392, 19:02 عصر
هر دو نسخه 4.5 هستن .
ولی خوب اشکال میگیره .

ممنون که کمک میکنید .

حد اقل خطایی که میگیره رو برامون بنویسید اینجا ببینیم سوادمون میرسه بفهمیم چشه یا نه :)

sinayas
شنبه 14 اردیبهشت 1392, 19:24 عصر
بیشتر خطاها رو برطرف کردم .
در واقع اشکال از کار من بود .
حالا یه مشکل دیگه دارم . برای ارتباط با بانک از لینک استفاده کردم .
همون DataContext رو که در پروژه اصلی داشتم رو به اینجا منتقل کردم . از یه بخشی داره ئطا میده که در زیر پیغام خط و کد رو میزارم .
public GBDataClassDataContext() :
base(global::GranitBeton.Properties.Settings.Defau lt.BetonConnectionString, mappingSource)
و خطای زیر رو میده

//
Error 1 The type or namespace name 'Properties' does not exist in the namespace 'GranitBeton' (are you missing an assembly reference?) D:\Sina\Granit Beton Application\BetonDLL\BetonDLL\GBDataClass1.designe r.cs 96 30 BetonDLL
//

در واقع اون قسمت رو که نوشه GranitBeton.Properties نمیشناسه .
البته GranitBeton اسم پروژه اصلی ولی وقتی از اسم همین پروژه که BetonDLL هستم هم استفاده میکنم همین ارور رو میده .

کامبیز اسدزاده
شنبه 14 اردیبهشت 1392, 19:35 عصر
خب عزیز من مشکل شما اینه !!! شما نباید DLL هاتون رو در Assemble و NameSpace Name هم نام پروژه اصلی قرار بدین ! :)
لطفا نام DLL رو یه چیز دیگه بزارید و دوباره رفرنس بگیرید و با نام جدید عملیات مربوطه رو بنویسید.

sinayas
شنبه 14 اردیبهشت 1392, 20:15 عصر
ممنون از شما .
هر جوری بود تونستم این کار رو بکنم و تقریبا مشکل حل شد .
البته فعلا به صورت تست انجام دادم و مجبور شدم یک سری از قسمت ها رو نادیده بگیرم .

امیدوارم بتونم که کل پروژه رو به این صورت آماده بکنم .