2012-02-03 9 views
12

का पता लगाएं मैं ओएसएक्स के तहत चल रहे सी # एप को प्राप्त करने की कोशिश कर रहा हूं जो बिल्कुल दर्द रहित नहीं है। अल्प अवधि में कुछ मुद्दों के आसपास काम करने के लिए, मैं ओएसएक्स में चल रहे कुछ विशिष्ट नियम स्थापित करने की सोच रहा हूं।सी # मोनो में संकलित - ओएस

लेकिन ... यह निर्धारित करने के लिए मैं क्या उपयोग कर सकता हूं कि ऐप विंडोज या ओएसएक्स के तहत चल रहा है या नहीं?

+0

मुझे यकीन है कि आप निम्नलिखित को समझने करना है। यदि आप मोनो का उपयोग करते हैं तो आप समझते हैं, आपका एप्लिकेशन केवल मोनो के साथ एक ऑपरेटिंग सिस्टम पर काम करेगा, इसमें विंडोज़ शामिल है। –

+0

@ रामहाउंड: वास्तव में? मैंने सोचा कि मोनो द्वारा उत्पादित सीआईएल MS.net2.0 जैसा ही है। अगर मैं गलत हूं तो मुझे सही करने के लिए स्वतंत्र महसूस करें। मैं मोनो के बारे में बहुत कम जानता हूँ। – spender

+0

@ स्पेंडर - मोनो रनटाइम के लिए विकास करते समय कुछ चेतावनी हैं। अधिकांश कामकाज हैं, यद्यपि। .NET परियोजनाओं को माइग्रेट करने के लिए माइग्रेशन विश्लेषक भी है: http://www.mono-project.com/MoMA। लंबे समय तक मोनो रहते हैं। – ken

उत्तर

17

मोनो wiki (मेरे अनुभव में, OSX यूनिक्स के रूप में जाना जाता है) से:

int p = (int) Environment.OSVersion.Platform; 
if ((p == 4) || (p == 128)) { 
     Console.WriteLine ("Running on Unix"); 
} else { 
     Console.WriteLine ("NOT running on Unix"); 
} 

या

string msg1 = "This is a Windows operating system."; 
string msg2 = "This is a Unix operating system."; 
string msg3 = "ERROR: This platform identifier is invalid."; 

OperatingSystem os = Environment.OSVersion; 
PlatformID  pid = os.Platform; 
switch (pid) 
{ 
    case PlatformID.Win32NT: 
    case PlatformID.Win32S: 
    case PlatformID.Win32Windows: 
    case PlatformID.WinCE: 
     Console.WriteLine(msg1); 
     break; 
    case PlatformID.Unix: 
     Console.WriteLine(msg2); 
     break; 
    default: 
     Console.WriteLine(msg3); 
     break; 
} 
+0

बिल्कुल सही! धन्यवाद। जैसे ही मुझे अनुमति है, स्वीकार करेंगे। – BlueVoodoo

+1

यह अभी भी लिनक्स और ओएसएक्स के बीच अंतर नहीं बताएगा। – IanNorton

+4

असल में, नए मोनो में [प्लेटफ़ॉर्म एनम में ओएसएक्स] है (http://docs.go-mono.com/index.aspx?link=T%3ASystem.PlatformID)। तो मोनो संस्करण के आधार पर आपको यूनिक्स या मैकॉक्स – IanNorton

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