PDA

View Full Version : قرار دادن dll در dl داخل dll



sadeghjun
جمعه 22 شهریور 1392, 11:11 صبح
سلام
من یه کامپوننت درست کردم و در اون از یه کامپوننت دیگه هم استفاده کردم.

چه جوری میشه یه فایل dll رو داخل dll گذاشت. (تو کامپوننت من از یه کامپوننت دیگه استفاده شده)
کامپوننتی کهمن استفاده کردم Ionic.Zip هست.
در جستجوهایی که انجام دادم کفته شده بود باید dll رو در Resources بذارم و بعد از تابع زیر استفاده بشود.

private System.Reflection.Assembly ResolveAssemblies(object sender, System.ResolveEventArgs e)
{
dynamic desiredAssembly = new System.Reflection.AssemblyName(e.Name);

if (desiredAssembly.Name == "Ionic.Zip")
{
return System.Reflection.Assembly.Load(Properties.Resourc es.Ionic_Zip);
}
else {return null; }

}

سپس در رویداد لود برنامه فراخوانی شود:
AppDomain.CurrentDomain.AssemblyResolve += ResolveAssemblies;

خوب حالا من در برنامه خودم اسفاده میکنم خطا میده که نمیشناسه. چه جوری باید از این تابع استفاده کنم؟؟؟

مثلا یه تابع دارم که با استفاده از کامپوننت فایل های زیپ رو باز میکنه:


private void unzip()
{

using (var zip = Ionic.Zip.ZipFile.Read("file address"))
{
zip.Password = "123";
zip.ExtractAll("destination address");
}
}

مهرداد صفا
شنبه 23 شهریور 1392, 10:30 صبح
با سلام.
یک روش مناسب در این تاپیک:
استفاده از Resource به عنوان reference (http://barnamenevis.org/showthread.php?385311-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%81%D8%A7%DB%8C%D9%84-resource-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-reference)

گر چه به نظر من در این مورد اگر از VB.net استفاده کنید خیلی راحتتر هستید.

sadeghjun
دوشنبه 25 شهریور 1392, 10:48 صبح
با سلام.
یک روش مناسب در این تاپیک:
استفاده از Resource به عنوان reference (http://barnamenevis.org/showthread.php?385311-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%81%D8%A7%DB%8C%D9%84-resource-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-reference)

گر چه به نظر من در این مورد اگر از VB.net استفاده کنید خیلی راحتتر هستید.

سلام
من تو اون تاپیک مشکلم حل نشد.
میشه بازم بسشتر راهنماییم کنید.