ما هي أفضل طريقة لإعداد مشروع VS الذي يستخدم مشاريع المصدر الخارجي المفتوح؟

StackOverflow https://stackoverflow.com/questions/2065630

  •  20-09-2019
  •  | 
  •  

سؤال

لديّ مشروع كبير أقوم باستبدال جزءين من بدائل مفتوحة المصدر بشكل أفضل. تعد مكتبات المصادر المفتوحة كبيرة جدًا ولكنها مستقرة وغير متغيرة ، لذا فإن بما في ذلك المصدر في مشروع VS الخاص بي يبدو أنه لا معنى له بالنسبة لي - إنه أكثر من ذلك هو التحميل ، وأكثر من ذلك لتجميع وما إلى ذلك. أفضل إنشاء مشروعين مفتوحين وحدهما ، في نسخة ثابتة ثم الرجوع إليها من المشروع الرئيسي.

لكن هذا يعطيني بعض المشاكل.

  1. سأريد تصحيح الإصدارات وإصدارها من المكتبات - لا يوجد لديه طريقة للتبديل بين المراجع بناءً على تلك المعرفة.

  2. تصحيح الأخطاء أكثر صعوبة إذا كنت أرغب في الدخول إلى الكود في المشاريع الأخرى - ليس بهذه البساطة مثل مجرد التنقل عبر الكود - أم أنها؟

  3. شيء آخر لم أفكر فيه بعد ...

لذا ، بينما ألعب مع الأفكار ، اعتقدت أنني سأسأل كيف ستنشئها يا رفاق.

المشروع الرئيسي والمشاريع المفتوحة المصدرين كلها في مستودعات SVN مختلفة. المشاريع المفتوحة المصدر لن أحصل على الجذع الجديد كل يوم ، ولكن إصلاح الإصدار.

شكرًا

هل كانت مفيدة؟

المحلول

1) يمكنك التبديل بين المراجع لتكوينات البناء المختلفة إذا قمت بذلك يدويًا عن طريق تحرير ملف .csproj.

ملف CSPROJ هو نص MSBUILD وهو XML. إذا قمت بتصفحها ، فيجب أن تجد ملفu003CItemGroup> العنصر الذي يحتوي على مجموعة منu003CReference> عناصر. يمكنك إضافة شرط إلى أحد هذه العناصر المرجعية مثل هذا:

<Reference Condition=" '$(Configuration)' == 'Debug' " Include="System.Drawing" />

يمكن أن تحتوي السمة على الاسم القوي الكامل للتجميع ، والتي قد لا تكون مختلفة بالضرورة لتصحيح التصحيح وإصدار تصميمات ثنائية. في هذه الحالة ، يمكنك إضافة ملفu003CHintPath> عنصر لتضمين المسار إلى .dll.

<Reference Include="assembly strong name">
  <HintPath>c:\LibraryStuff\Debug\Library.dll</HintPath>
</Reference>

يمكن أن يكون مسار التلميح الخاص بك نسبيًا أيضًا:

<HintPath>..\..\LibraryStuff\Debug\Library.dll</HintPath>

إخلاء المسئولية: لم أفعل ذلك أبدًا مع المراجع ، لا يمكنني ضمان وجود مشكلات. لقد اختبرت ذلك بسرعة ويبدو أنه يعمل بشكل جيد ، على الرغم من أن Visual Studio يعرض كل من المراجع بغض النظر عن التكوين الذي حددته (على الرغم من أنه يبني فقط واحد لنوع التكوين المطابق). كما أنه يضع أيقونة تحذير في الثانية إذا كان لديهم أسماء مطابقة ، ولكن يبدو أن التجميع يعمل بشكل جيد.

إذا واجهت مشاكل ، فيمكنك محاولة الحصول على مرجع واحد مع اثنين من العقد المختلفة HintPath ووضع الشرط على مسار التلميح.


2) شريطة أن يكون لديك .pdbs والرمز المصدري في الأماكن الصحيحة ويمكن الوصول إليه ، يجب أن تكون قادرًا على التصحيح مباشرة إلى المكتبة من خلال الدخول إلى الكود فقط على الرغم من أنك تشير فقط إلى ملف .dll.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top