2017-05-14 17 views
5

के बराबर समकक्ष मैं कक्षा पुस्तकालय बना रहा हूं जिसका उपयोग एक WPF प्रोजेक्ट और .NET कोर प्रोजेक्ट में किया जाएगा। मैं अपने आवेदन का उपयोग कर मशीन का नाम पाने की कोशिश कर रहा हूं।पर्यावरण। MachineName .NET मानक 1.4

दोनों .NET कोर और WPF अनुप्रयोग में मैं Environment.MachineName मान का उपयोग कर सकता हूं। हालांकि मेरी .NET मानक कक्षा पुस्तकालय में मैं नहीं कर सकता।

मैं निम्नलिखित त्रुटि मिलती है:

'Environment' does not contain a definition for 'MachineName'

मैं कर की कोशिश की क्या जवाब this question में सुझाव दिया लेकिन जब मैं System.Windows.Networking.Connectivity.NetworkInformation.GetHostNames() मैं निम्नलिखित त्रुटि मिलती है जोड़ने का प्रयास:

The name 'Windows' does not exist in the current context

मैं इस मान लेते हैं कि केवल विंडोज 10 यूनिवर्सल एप्स के लिए काम करता है? किसी भी तरह से मैं मशीन नाम प्राप्त करने के लिए एक मंच स्वतंत्र तरीका पसंद करूंगा (इस तरह से केवल विंडोज मशीनों के लिए इसका मतलब है)

उत्तर

16

Environment.MachineName केवल System.Runtime.Extensions NuGet पैकेज (.NET मानक में) का उपयोग कर .NET मानक> 1.5 में उपलब्ध है। 2.0 यह स्वचालित रूप से उपलब्ध है)।

एक विकल्प के रूप में, आप System.Net.NameResolution NuGet पैकेज का हवाला System.Net.Dns.GetHostName() का उपयोग कर सकते हैं या Environment.GetEnvironmentVariable("COMPUTERNAME") के माध्यम से COMPUTERNAME (जीत) या HOSTNAME (* nix) वातावरण चर को हल कर सकते हैं।

+1

बहुत बढ़िया। धन्यवाद @ मार्टिन-ullrich। मैं 'var name = Environment.GetEnvironmentVariable (" CUMPUTERNAME ") के साथ समाप्त हुआ ?? पर्यावरण। GETEnvironmentVariable ("HOSTNAME"); ' – Anders

+0

+ पर्यावरण के लिए 1। GETEnvironmentVariable (" COMPUTERNAME ") ?? Environment.GetEnvironmentVariable ("HOSTNAME"); ' – brthornbury

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