سؤال

أنا أستخدم 3.5 SP1 على جهازي، بينما يستخدم عملاؤنا حاليًا 3.5 بدون SP1.لا أعرف بأي طريقة في VS2008 لاستهداف الحل أو المشروع إلى 3.5 بدون SP1، فقط 3.5 مع SP1 قمت بتثبيته.

إذا استخدمنا وظائف أو منشئات غير متوفرة في 3.5 w/o SP1، فلن يعمل الرمز بشكل صحيح.

وهذا هو، أريد أن كشف في وقت الترجمة ما لن يعمل بدون SP1.

لقد أجرينا حتى الآن اختبارًا (في جهاز افتراضي أو جهاز منفصل) لمعرفة ما إذا كان التطبيق يتعطل، ويتعطل أحيانًا عندما نستخدم أجزاء من واجهة برمجة التطبيقات (API) غير متوفرة حتى SP1.تكمن المشكلة في أنه ينقطع فقط عند تشغيل التعليمات البرمجية فعليًا (في وقت التشغيل)، وليس عند تحميل التجميع.

قد يكون أحد الحلول هو الحصول على جهاز مزود بـ VS2008 بدون SP1 ومحاولة ترجمة المشروع.ومع ذلك، أفضل استخدام بعض الأدوات لمساعدتي في اكتشاف التبعية لـ 3.5 SP1 (بسبب استخدام واجهة برمجة التطبيقات الجديدة، أو أي شيء آخر)، إما عن طريق تحليل كود المصدر، أو التجميعات التي ننتجها.

إن صلاحياتي في Google لم تكن قوية بما يكفي للتعامل مع هذا السؤال، هل هناك أي تلميحات؟

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

المحلول

ولقد كان نفس المشكلة، ولقد وجدت الحل. لطلبنا، كانت الدعوة إلى System.Threading.WaitHandle.WaitOne (Int32) التي حصلت لنا في ورطة. لمزيد من المعلومات حول كيفية ما يشير إلى وAPI التي تم تقديمها في إصدارات حزمة الخدمة يمكن أن يتسرب إلى التعليمات البرمجية الخاصة بك دون البصرية ستوديو يلاحظ، انظر> وأ href = "http://blogs.msdn.com/kcwalina/archive/2007/10/02 /Multi_2D00_TargetingAndFxCop.aspx "يختلط =" نوفولو noreferrer "> كرزيسستوف كوالينا ما بعد .

والخبر السار هو أنه، كما <لأ href = "https://stackoverflow.com/questions/233211/detect-net-framework-3-5-sp1-dependency-cmp-3-5-wo-sp1 / 233231 # 233231 "> ذكر مارك هو جوابه ، FxCop لها <لأ href =" http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008- SP1-وfxcop-1-36-متعددة استهداف rule.aspx "يختلط =" نوفولو noreferrer "> حكم جديدة أن يكتشف هذه التسريبات. هو الخبر السيئ أن القاعدة هي كسر في FxCop 1.36 عند استهداف الإطار الصافي 3.5. ومع ذلك، يصف ديفيد كين كيفية تحرير اثنين من ملفات التكوين XML إلى <لأ href = "http://davesbox.com/archive/2008/11/29/bug-multi-targeting-rule-not-firing-on- الأعراف من بين 2-0-SP2-و3-0-sp2.aspx "يختلط =" نوفولو noreferrer "> حل المشكلة . تابعت التعليمات، وFxCop الآن بالكشف عن إشارات لبلدي في API حزمة الخدمة.

نصائح أخرى

وماذا عن <لأ href = "http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting- rule.aspx "يختلط =" نوفولو noreferrer "> هذا ؟ (قواعد متعددة تصويبها لFxCop)

ويمكنك استخدام وجدت رمز هنا للكشف عن أطر .NET تثبيت.

وسلسلة Fx35RegistryKey = @ "HKEY_LOCAL_MACHINE \ SOFTWARE \ مايكروسوفت \ إعداد إطار عمل NET \ الحزب الوطني الديمقراطي \ V3.5". الاعتراض Fx35ServicePack = Registry.GetValue (Fx35RegistryKey، "SP"، باطل)؛

وإذا (Fx35ServicePack == اغية || (الباحث) Fx35ServicePack <1) رمي استثناء جديد ( "صافي الإطار مطلوب 3.5 SP1.")؛

هناك خيار آخر لم أجربه.ال وثائق الاستوديو المرئي يقول أنه يمكنك جعل برنامج تثبيت ClickOnce الخاص بك يستهدف إطار عمل .NET 3.5SP1 على وجه التحديد.اتبع الارتباط، وابحث عن "Targeting .NET Framework Version 3.5 SP1".في الأساس، تقول الرسالة أن القيام بأي مما يلي سيجبر المثبت على تثبيت 3.5SP1:

  • حدد عنوان URL للخطأ في مربع الحوار Publish Options.
  • حدد اسم Suite في مربع الحوار خيارات النشر.
  • قم بإنشاء اختصار على سطح المكتب في مربع الحوار "خيارات النشر".
  • استبعاد ملف من التجزئة في مربع الحوار ملفات التطبيق.
  • قم بإلغاء تحديد خانة الاختيار تسجيل بيانات ClickOnce في صفحة التوقيع.
  • إضافة مرجع إلى التجميع System.Data.Entity.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top