سؤال

أنا أستخدم Visual Studio 2010 وأستخدم نشر الويب للترويج لموقع .NET MVC لبيئات محددة. لقد قمت بتثبيت Elmah ، وعملت بشكل رائع في بيئتي Dev ، لكن عندما دفعت الاختبار ، حصلت على استثناءات لأن SQLite لم يكن تنسيقًا جيدًا.

أنا لا أستخدم sqlite في Elmah أو غير ذلك الذي أعرفه. لقد قمت بإزالة جميع المرات المرئية إلى SQLite ، وقد قمت بإزالة .DLL من جميع أدلة صندوق التكوين. لكنه لا يزال يتم إدخاله مع كل بناء. أدرك أن مشكلة الاستثناء هي أنه لا يمكن بناء SQLite في وحدة المعالجة المركزية ، وبيئاتي تختلف من x86 إلى X64. لكنني أفضل أن لا يكون SQLite موجودًا.

لقد قمت منذ ذلك الحين بإلغاء تثبيت Elmah ، ولا يزال يتم إدخال SQLite في دليل bin. لقد قمت الآن بإعادة تثبيت Elmah ، وأنا أحذف sqlite.dll يدويًا من bin بعد كل بناء. كيف يمكنني تحديد ما الذي يسبب إدراج SQLite في صندوق bin بعد كل بناء؟

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

المحلول

إذا كنت لا تستخدم SQLite ، فأنت بحاجة ببساطة إلى إزالته من مصدر الموقع من حيث أنت مستورد المرجع. للتوسع في ذلك ، دعنا نفترض أنك قمت بتنزيلها وفك الضغط على المسار C:\ELMAH على محركك المحلي. عند إضافة إشارة إلى Elmah ، ربما تكون قد أشرت إلى أحد إصدارات النظام الأساسي تحت C:\ELMAH\bin, ، مثل C:\ELMAH\bin\net-2.0\Release. من عند C:\ELMAH\bin المشاريع الفرعية ، قم بإزالة جميع التجميعات والملفات الأخرى غير المرغوب فيها إلا Elmah.dll, Elmah.pdb و Elmah.xml. بالمعنى الدقيق للكلمة ، لا تحتاج حتى إلى اثنين من الأخيرين ولكن مع ذلك يوصى بهما. بمجرد القيام بذلك ، يمكنك إضافة إشارة إلى Elmah.dll إلى مشروعك في Visual Studio ولن يتم سحب أي من التبعيات إلى طلبك bin الدليل. قد تضطر إلى حذف الخاص بك bin الدليل وإعادة بناء مشروعك للتخلص من نسخة قديمة من System.Data.SQLite.dll من مرجع سابق. سوف تستمر المسح في العمل بشكل جيد بدون System.Data.SQLite.dll طالما أنك لا تستخدم Elmah.SQLiteErrorLog كمتجر سجل الخطأ الخاص بك.

وفقًا للاقتراحات الأخرى ، يجب ألا تضطر إلى إزالة الإشارات إلى SQLite من مصادر Elmah وإنشاء بناء خاص.

نصائح أخرى

أعتقد أن Visual Studio سوف يكتشف أن SQLite مطلوب من قبل Elmah ونسخه إذا وجدها. من أجل تحقيق نفس الهدف الذي قمت بإزالته من جميع الأشياء sqlite من رمز المصدر Elmah وإعادة تصميمه. إنه لأمر غير مؤلم أن تفعل ...

استخدم محرر نصوص مع دعم "find-infiles" للبحث في جميع ملفات مشروعك عن "SQLite". يجب أن يكون هناك شيء يشير إليه.

أعلم أن هذا سؤال قديم ، لكن لدي مشكلة مماثلة وهبطت هنا ، لذلك ربما لا تزال إجابتي مفيدة للآخرين.

ما عليك سوى إضافة هذا إلى ملف مشروعك لتطبيق الويب الخاص بك في عنوان Property Group-element:

<ExcludeFilesFromDeployment>bin\System.Data.SQLite.dll</ExcludeFilesFromDeployment>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top