الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحديد مسار اسومبلي ما في AppConfig

بدأه زكيري عبد العالي في 12 يونيو 2012 · 3 رد · 507 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندا عدة مشاريع و ادوات صغيرة كلها تستخدم DLLو احد و هو الذي تصل بالقاعدة و يعطين مختلف الكلاسات و في كل تغير اقوم حاليا بتغير الملفات من مجلد الى اخر ة لكني اريد ان اضع ملف واحد فقط و الكل يتشارك فيه.

في الحقيقة عندي سؤالين

1- كيف يمكن الاستغناء على الملفيات 1 -2 -3 و تعويضها يملف واحد فقط و يكون داءما في المجلد lib عنك التنفيذ لانه في السوليشن استظعت فعل ذلك بوضع اختصار للملف Appconfig

2-كيف يمكن التعامل مع الدلل dll الموجود في lib اضفت الكود في appconfig و لم يشتغل

<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<dependentAssembly>
				<assemblyIdentity name="Database.ORM" />
				<codeBase version="1.0.0.0" href="file:///c:\Lib\ORM.dll"/>
			</dependentAssembly>
		</assemblyBinding>
	</runtime>

post-1034-084781100 1339507810_thumb.jpg

المرفقات
AppCon.jpg

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 12 يونيو 2012 في 18:05

#2

السلام عليكم ..

  1. يجب ان تكون الــ DLL لها Strong name ... و للقيام بذلك .. افتح
    start menu - programs -all programs -Microsoft visual stdio 2010 - visual studio tools - visual studio command prompt

  2. قم بتوليد زوج من المفاتيح بالأمر :
    sn -k t.snk

  3. إذهب إلى مشروع الــ DLL ثم خصائص ثم signing ثم حدد الملف الذي تم توليده في الخطوة السابقة .. ثم build للمشروع ..
  4. قم بتغيير المسار الحالي إلى المسار الذي يحوي الــ DLL و اكتب الأمر التالي :
    SN -T  MyLib.dll

    حتي يعطيك الــ public key token و قم بنسخه ..

  5. في المشروع الذي تريد استخدام المكتبه فيه اكتب مايلي , مع ذكر المفتاح من الخطوة السابقة في الخاصية publicKeyToken كمايلي:
    <runtime>
    	<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      	<dependentAssembly>
        	<assemblyIdentity publicKeyToken ="72b1210e91789c82" name="MyLib"  />
        	<codeBase  version="1.0.0.0" href="file:///D:\my_documents\Visual Studio 2008\Projects\MyLib\MyLib\bin\Debug\MyLib.dll"/>
      	</dependentAssembly>
    	</assemblyBinding>
      </runtime>

  6. عندما تضيف ملف الــ DLL كمرجع reference للمشروع تأكد انه copy local = false ..له ..
  7. المرجع How to load an assembly at runtime that is located in a folder that is not the bin folder of the application رابط
  8. How To Create an Assembly with a Strong Name in .NET Framework SDK رابط

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 13 يونيو 2012 في 00:41

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

نجحت الفكرة بارك الله فيك

اما عن السؤال الاخر هل من حل

اي اريد استعمال app.config واحد فقط

شكرا

#4

السلام عليكم ..

بارك الله بك أخ زكيري ...

  1. حسب معلوماتي , فإن الــ config file يجب أن يكون في نفس مجلد التطبيق التنفيذي ..
  2. يمكن قراءة محتويات ملف Config موجود في مكان آخر ... لكن تقوم بقراءة القيم منه بشكل عادي , أي لا يتم تنفيذها :
    System.Configuration.Configuration con = System.Configuration.ConfigurationManager.OpenExeConfiguration("e:\t.exe");

    بعد إضافة مرجع للــ System.Configuration حيث يتم القراءة من الملف e:\t.exe.config رابط

  3. يمكن توسيع ملف الــ config ليقوم بقراءة محتويات ملف آخر في مكان آخر باستخدام الــ attribute المسماة configSource مثلا :
    <?xml version='1.0' encoding='utf-8'?>
    <configuration>
    	<connectionStrings configSource="connections.config"/>
    </configuration>

    رابط

  4. حاولت استخدام :
    <runtime configSource="file:///D:\my_documents\bin\Debug\t.config"/>

    لكنه لم يعمل .. حيث قمت بوضع الــ runtime في ملف منفصل .. كما قلت .. لم يعمل

  5. How can I move app.config to a different folder inside the Solution Explorer? رابط

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

مواضيع مشابهة