PDA

View Full Version : مشگل با ساخت Dll ؟



mdssoft
پنج شنبه 25 بهمن 1386, 10:23 صبح
سلام.
من برای درست کردن Dll از ClassLibrary استفاده میکنم .
اما بعد از Build کردن (Shift + F6) و درست شدن Dll وقتی از Dll خودم تو پروژ ه های دیگر استفاده میکنم و اون رو به Reference هام اضافه می کنم به محض تولید Exception در داخل فایل Dll ، کد اون رو نشون میده و محل تولید Exception رو .

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

من برای تولید Exception از کد زیر استفاده میکنم .


if (DateTime == null) throw new Exception("Date time is null");ممنون میشم کمکم کنید

silentrise
پنج شنبه 25 بهمن 1386, 12:18 عصر
سلام
دوست عزیز اگه تمام کار ها رو روال عادی انجام داده باشی اینجوری نمیشه ! چون من امتحان کردم با Exeption ولی فقط به قسمت تعریف کلاس اشاره کرد . اگر لطف کنی DLL انجا بزاری ما هم تست میکنیم!
باسپاس

رضا عربلو
پنج شنبه 25 بهمن 1386, 17:47 عصر
شما اگر همراه با dll تان فایل دیباگ pdb.* را نیز توزیع کنید کاربر اسمبلی تان می تواند آنرا دیباگ کند، و کدهای وقوع خطا در داخل آنرا ببیند.
پس همرا با dll تان فایل pdb.* را توزیع نکنید.

silentrise
پنج شنبه 25 بهمن 1386, 18:14 عصر
سلام
من با فایل pdb کارکردم وسعی کردم برنامه Exeption بده ولی یه هم چیزی ندیدم ! لطف میکنید بیشتر توضیح بدید !؟
باسپاس

رضا عربلو
پنج شنبه 25 بهمن 1386, 20:31 عصر
همون پنجره exception ی که جلوی چشم شما ظاهر می شود یک دکمه دارد به نام details که اگر بر روی آن کلیک کنید می توانید شماره خط که استثنائ در آن رخ داده و همچنین پشته فراخوانی متدهایتان را ببینید.
در واقع فایل های pdb اسمبلی تان را با jit گره می زند و در صورت وقع یک استثناء، حالا Jit می تواند اطلاعات بیشتری در مورد محل وقوع استثناء به شما بدهد.

mdssoft
دوشنبه 29 بهمن 1386, 08:24 صبح
شما اگر همراه با dll تان فایل دیباگ pdb.* را نیز توزیع کنید کاربر اسمبلی تان می تواند آنرا دیباگ کند، و کدهای وقوع خطا در داخل آنرا ببیند.
پس همرا با dll تان فایل pdb.* را توزیع نکنید.

خوب من چطور باید این کار رو انجام بدم
یعنی تو چه تنظیماتی برم ؟

silentrise
دوشنبه 29 بهمن 1386, 09:57 صبح
سلام
هیچ تنظیمی نداره دوست عزیز ! از تو folder برنامه اجرایی pdb.* برش دار !
موفق باشی

mdssoft
سه شنبه 30 بهمن 1386, 01:09 صبح
ممنون ، امتحانش میکنم

mdssoft
جمعه 03 اسفند 1386, 00:45 صبح
سلام
هیچ تنظیمی نداره دوست عزیز ! از تو folder برنامه اجرایی pdb.* برش دار !
موفق باشیمن این کار رو کردم اما بازم نشد و اگر داخل DLL ، استثنا تولید بشه بازم سورس Dll رو برای Debug نشون میده .

این هم Dll من ، خیلی ممنون میشم راهنماییم کنید

14866

choobin84
جمعه 03 اسفند 1386, 06:47 صبح
سلام.
من برای درست کردن Dll از ClassLibrary استفاده میکنم .
اما بعد از Build کردن (Shift + F6) و درست شدن Dll وقتی از Dll خودم تو پروژ ه های دیگر استفاده میکنم و اون رو به Reference هام اضافه می کنم به محض تولید Exception در داخل فایل Dll ، کد اون رو نشون میده و محل تولید Exception رو .

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

من برای تولید Exception از کد زیر استفاده میکنم .


if (DateTime == null) throw new Exception("Date time is null");ممنون میشم کمکم کنید

کد شما لو نرفته،فقط روی کامپیوتر خودتون نشون داده میشه . این امکانی هست برای شما که بتوانید محتویات دی ال ال رو بهتر چک کنید.

برنامه ای به نام reflector ‌خست که توی همین سایت هم موجوده. اونه که شما باید ازش بترسی

__H2__
شنبه 04 اسفند 1386, 10:10 صبح
سلام
بله کاملاً درسته من هم به همین مشکل برخورد کرده بودم، پوشه سورس را Rename کردم و دیدم درست شد!!!!!!
یعنی VS چون میداند سورستان کجا قرار دارد از آن استفاده میکند، در زمان انتقال اگر فقط فایل dll را منتقل کنید مشکلی پیش نمی آید.

ولی حتماً پروژه را در حالت Release کامپایل کنید، اگر پروژه در حالت Debug کامپایل شود، علاوه بر مشکلات دیگر، کدهای زیادی به خروجی اضافه میشود.

تازه بعد هم که relseae کامپایل کنید مشکلات برنامه هایی مثل reflector را خواهید داشت.

choobin84
شنبه 04 اسفند 1386, 14:58 عصر
بله کاملاً درسته من هم به همین مشکل برخورد کرده بودم، پوشه سورس را Rename کردم و دیدم درست شد!!!!!!
یعنی VS چون میداند سورستان کجا قرار دارد از آن استفاده میکند، در زمان انتقال اگر فقط فایل dll را منتقل کنید مشکلی پیش نمی آید.


فایلی با این مشخصات زیر وجود دارد.

نام فایل : نام پروژه تون
پسوند فایل : csproj

یا nodePade بازش کنید بین دو تا تگ <ReferencePath></ReferencePath> مسیر دی ال ال ها و سورس کلاس ها و ... را می بینید. با خیال را حت هر چی بین این دو تا تگ وجود داره رو پاک کنید.
راحت میشید.