كيف أقوم بتعيين متغيرات بيئة معينة عند تصحيح الأخطاء في Visual Studio؟

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

سؤال

في مشروع مكتبة فئة، قمت بتعيين "بدء الإجراء" في علامة التبويب تصحيح لخصائص المشروع على "بدء برنامج خارجي" (وحدة في هذه الحالة).أريد تعيين متغير بيئة في البيئة التي يبدأ فيها هذا البرنامج.كيف يمكنني فعل ذلك؟(هل هذا ممكن حتى؟)

يحرر:

إنه متغير بيئة يؤثر على كافة تطبيقات .NET (COMplus_Version، فهو يضبط إصدار وقت التشغيل) لذا فإن تعيينه على مستوى النظام ليس خيارًا حقًا.

كحل بديل، قمت بإجبار NUnit على البدء في إصدار .NET الصحيح (2.0) عن طريق إعداده nunit.exe.config, ، على الرغم من أن هذا يعني للأسف أيضًا أن جميع اختبارات وحدة .NET 1.1 الخاصة بي يتم تشغيلها الآن أيضًا في .NET 2.0.ربما ينبغي لي فقط إنشاء نسخة من الملف القابل للتنفيذ حتى يكون له ملف التكوين الخاص به ...

(أبقي السؤال مفتوحًا (لا أقبل إجابة) في حالة اكتشاف شخص ما كيف (قد يكون مفيدًا لأغراض أخرى أيضًا بعد كل شيء ...))

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

المحلول

في Visual Studio 2008 وVisual Studio 2005 على الأقل، يمكنك تحديد التغييرات على متغيرات البيئة في إعدادات المشروع.

افتح مشروعك.انتقل إلى المشروع -> الخصائص...ضمن خصائص التكوين -> تصحيح الأخطاء، قم بتحرير قيمة "البيئة" لتعيين متغيرات البيئة.

على سبيل المثال، إذا كنت تريد إضافة الدليل "c:\foo\bin" إلى المسار عند تصحيح أخطاء التطبيق الخاص بك، فاضبط قيمة "البيئة" على "PATH=%PATH%;c:\foo\bin".

Here

نصائح أخرى

يبدو أن Visual Studio 2003 لا يسمح لك بتعيين متغيرات البيئة لتصحيح الأخطاء.

ما أفعله في C/C++ هو الاستخدام _putenv() في main() وتعيين أي متغيرات.عادةً ما أحيطه بـ #if defined DEBUG_MODE / #endif للتأكد من أن بنيات معينة فقط هي التي تمتلكها.

_putenv("MYANSWER=42");

أعتقد أنه يمكنك فعل الشيء نفسه مع لغة C# باستخدام os.putenv()، أي.

os.putenv('MYANSWER', '42');

سيؤدي ذلك إلى تعيين متغير البيئة لعملية الصدفة هذه فقط، وبالتالي فهو إعداد سريع الزوال، وهو ما تبحث عنه.

بالمناسبة، من الجيد استخدام مستكشف العمليات (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)، وهي أداة sysinternals.يمكنك معرفة ما هي نسخة عملية معينة من متغيرات البيئة، حتى تتمكن من التحقق من أن ما قمت بتعيينه هو ما حصلت عليه.

في Visual Studio لنظام التشغيل Mac وC#، يمكنك استخدام:

Environment.SetEnvironmentVariable("<Variable_name>", "<Value>");

لكنك ستحتاج إلى مساحة الاسم التالية

using System.Collections;

يمكنك التحقق من القائمة الكاملة للمتغيرات باستخدام هذا:

foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
            Console.WriteLine("  {0} = {1}", de.Key, de.Value);

بدءًا من NUnit 2.5، يمكنك استخدام مفتاح /framework على سبيل المثال:

nunit-console myassembly.dll /framework:net-1.1

هذا من صفحات المساعدة الخاصة بـ NUnit.

إذا لم تتمكن من استخدام ملفات الخفافيش لإعداد بيئتك، فإن خيارك الوحيد المحتمل هو إعداد متغير بيئة على مستوى النظام.يمكنك العثور على هذه عن طريق العمل

  1. انقر بزر الماوس الأيمن على "جهاز الكمبيوتر"
  2. حدد الخصائص
  3. حدد علامة التبويب "متقدمة".
  4. انقر فوق الزر "متغيرات البيئة".
  5. في قسم "متغيرات النظام"، قم بإضافة متغير البيئة الجديد الذي تريده
  6. "موافق" على طول الطريق لقبول التغييرات الخاصة بك

لا أعرف ما إذا كان سيتعين عليك إعادة تشغيل الاستوديو المرئي، ولكن يبدو ذلك غير مرجح.هث

قم بإعداد ملف دفعي يمكنك استدعاءه.قم بتمرير مسار الملف الدفعي، واطلب من الملف الدفعي تعيين متغير البيئة ثم استدعاء NUnit.

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

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