2008-09-19 12 views
38

क्लास लाइब्रेरी प्रोजेक्ट पर, मैंने प्रोजेक्ट गुणों के डीबग टैब पर "स्टार्ट एक्शन" सेट किया है, "इस कार्यक्रम में" बाहरी प्रोग्राम प्रारंभ करें "(NUnit)। मैं पर्यावरण में एक पर्यावरण चर सेट करना चाहता हूं इस कार्यक्रम में शुरू किया गया है। मैं यह कैसे कर सकता हूं?विजुअल स्टूडियो में डिबगिंग करते समय मैं विशिष्ट पर्यावरण चर कैसे सेट करूं?

यह (COMplus_Version, यह क्रम संस्करण सेट) तो यह प्रणाली की स्थापना विस्तृत वास्तव में सभी NET अनुप्रयोगों प्रभावित करती है कि एक वातावरण चर रहा है एक विकल्प नहीं है:

संपादित करें (यह भी संभव है?)।

एक समाधान मैं सिर्फ NUnit मजबूर, nunit.exe.config में निर्धारित कर उसे सही नेट संस्करण (2.0) में शुरू करने के लिए के रूप में, हालांकि दुर्भाग्य से यह भी मतलब सब मेरी .NET 1.1 इकाई परीक्षण अब भी .NET 2.0 में चलाए जा रहे हैं। मुझे शायद निष्पादन योग्य की प्रतिलिपि बनाना चाहिए ताकि इसकी अपनी कॉन्फ़िगरेशन फ़ाइल हो ...

(यदि कोई व्यक्ति यह पता लगाने के लिए होता है कि यह प्रश्न कैसे खुला है (उत्तर स्वीकार नहीं कर रहा है) सभी उद्देश्यों के लिए भी उपयोगी हो ...)

+0

क्या आप विशेष रूप से इस प्रोजेक्टर के लिए एक पर्यावरण चर चाहते हैं केवल हूँ –

उत्तर

59

दृश्य   स्टूडियो   2008 में और दृश्य   स्टूडियो   2005 में कम से कम, आप परियोजना सेटिंग्स में वातावरण चर में परिवर्तन निर्दिष्ट कर सकते हैं।

अपनी परियोजना खोलें। प्रोजेक्ट पर जाएं -> गुण ... कॉन्फ़िगरेशन गुणों के तहत -> डिबगिंग, पर्यावरण चर सेट करने के लिए 'पर्यावरण' मान संपादित करें।

उदाहरण के लिए, यदि आप अपने अनुप्रयोग को डीबग करते समय पथ में "c: \ foo \ bin" निर्देशिका जोड़ना चाहते हैं, तो 'पर्यावरण' मान को "PATH =% PATH%" पर सेट करें; c: \ foo \ bin "।

Here's a screenshot of the settings dialog

+0

मैं वीएस 2008 का उपयोग कर रहा हूं, और मेरे प्रोजेक्ट गुणों में "कॉन्फ़िगरेशन गुण" या "डिबगिंग" नहीं है। मुझे परियोजना गुणों के तहत कहीं भी पर्यावरण चर के बारे में कुछ नहीं मिल रहा है। मैं क्या गलत कर रहा हूं? –

+0

मैं इस पोस्ट को स्क्रीनशॉट के साथ संपादित करूँगा जहां सेटिंग्स हैं। –

+0

हाय, आप इस स्क्रीन पर कैसे पहुंचे? मेरे वीएस -2008 और वीएस2005 प्रोजेक्ट गुणों में अलग दिखने लगते हैं, और उनके पास पर्यावरण सेटिंग्स नहीं हैं – Grzenio

0

एक बैच फ़ाइल सेट करें जिसे आप आमंत्रित कर सकते हैं। बैच फ़ाइल को पथ पास करें, और बैच फ़ाइल को पर्यावरण चर सेट करें और फिर NUnit का आह्वान करें।

+4

विजुअल स्टूडियो प्रोग्राम शुरू करने के पथ में निष्पादन योग्य (.exe) के अलावा कुछ भी स्वीकार करने से इंकार कर देता है। – Tobi

1

यदि आप अपने पर्यावरण को स्थापित करने के लिए बैट फ़ाइलों का उपयोग नहीं कर सकते हैं, तो आपका एकमात्र संभावित विकल्प सिस्टम वाइड पर्यावरण चर सेट अप करना है। आप

  1. करके इन पा सकते हैं राइट क्लिक करें "मेरा कंप्यूटर"
  2. गुण का चयन करें
  3. "उन्नत" टैब
  4. चुनें "वातावरण चर" बटन पर क्लिक करें
  5. "सिस्टम चर में "खंड, नया पर्यावरण चर जोड़ें जो आप चाहते हैं
  6. " ठीक "आपके परिवर्तनों को स्वीकार करने के लिए सभी तरह से

मुझे नहीं पता कि आपको दृश्य स्टूडियो को पुनरारंभ करना होगा, लेकिन असंभव लगता है। HTH

+0

मार्क, मेरा मानना ​​है कि आवश्यकता पर्यावरण के लिए थी, कार्यक्रम को शुरू किया गया था, न कि उपयोगकर्ता या सिस्टम वातावरण। –

+0

हाँ, यह एक पर्यावरण परिवर्तनीय है जो सभी .NET ऐप्स को प्रभावित करता है (COMplus_Version, यह रनटाइम संस्करण सेट करता है) ताकि सिस्टम को व्यापक रूप से सेट करना वास्तव में एक विकल्प न हो। – Tobi

+0

यूप - इसे याद किया। माफ़ कीजिये। – Mark

0

वातावरण माता पिता प्रक्रिया से लिए गए हैं के रूप में, आप दृश्य स्टूडियो के लिए एक ऐड-इन है कि इसके वातावरण चर को संशोधित करता है इससे पहले कि आप शुरू प्रदर्शन लिख सकते हैं। मुझे यकीन नहीं है कि आपकी प्रक्रिया में कितना आसान होगा।

4

विजुअल स्टूडियो 2003 आपको डिबगिंग के लिए पर्यावरण चर सेट करने की अनुमति नहीं देता है।

मैं सी/सी ++ में जो करता हूं वह _putenv()main() में उपयोग करता है और किसी भी चर सेट करता है। आम तौर पर यह सुनिश्चित करने के लिए कि केवल कुछ बिल्डों में यह सुनिश्चित करने के लिए #if defined DEBUG_MODE/#endif के साथ घिरा हुआ है।

_putenv("MYANSWER=42"); 

मैं ये ही नहीं खोल प्रक्रिया के लिए envrironment चर सेट हो जाएगा लगता है कि आप()

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

os.putenv उपयोग करते हुए, यानी साथ सी # एक ही बात कर सकते हैं, और इस तरह एक अल्पकालिक है सेटिंग, जो आप खोज रहे हैं।

वैसे, इसका उपयोग करने के लिए अच्छा प्रक्रिया एक्सप्लोरर (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx), जो एक sysinternals उपकरण है। आप देख सकते हैं कि पर्यावरण चर की एक दी गई प्रक्रिया 'प्रतिलिपि क्या है, ताकि आप यह निर्धारित कर सकें कि आपने जो सेट किया है वह वह है जो आपको मिला है।

1

NUnit 2.5 के साथ शुरू आप उपयोग कर सकते हैं/ढांचे स्विच उदा .:

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

यह NUnit's help pages से है।

2

के लिए मैक और सी # दृश्य स्टूडियो में आप उपयोग कर सकते हैं:

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

लेकिन आप निम्नलिखित नाम स्थान

using System.Collections; 

आप इस के साथ चर की पूरी सूची की जांच कर सकते की आवश्यकता होगी:

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

ओएमजी, मैं उस साधारण कॉल पर्यावरण को खोजने के लिए पिछले आधा घंटे खोज रहा हूं .etEnvironmentVariable()। धन्यवाद! – Alan

संबंधित मुद्दे