क्या किसी मॉड्यूल को विफल करने का एक प्रामाणिक तरीका है जब इसे import-module के साथ आयात करने का प्रयास किया जाता है, उदाहरण के लिए क्योंकि एक विशिष्ट पूर्व शर्त पूरी नहीं होती है।

वर्तमान में, मेरे पास मॉड्यूल की शुरुआत में निम्नलिखित तीन लाइनें हैं:

if ( [IntPtr]::Size -ne 4 ) {
    throw '32 bit environment required' 
}

मैं सोच रहा हूं कि 64-बिट वातावरण में मॉड्यूल का उपयोग करने से रोकने के लिए कोई बेहतर (या अधिक सहमत तरीके से) है या नहीं।

1
René Nyffenegger 21 जिंदा 2021, 15:52

1 उत्तर

सबसे बढ़िया उत्तर

मैं सोच रहा हूं कि 64-बिट वातावरण में मॉड्यूल का उपयोग करने से रोकने के लिए कोई बेहतर (या अधिक सहमत तरीके से) है या नहीं।

पावरशेल का मॉड्यूल मेनिफेस्ट स्कीमा में इसके लिए एक कॉन्फ़िगरेशन तत्व है - ProcessorArchitecture!

New-ModuleManifest -Path My32BitOnlyModule.psd1 -ProcessorArchitecture x86

या, यदि आपको किसी मौजूदा मॉड्यूल मेनिफेस्ट में जोड़ने की आवश्यकता है:

@{
  # ...
  ProcessorArchitecture = 'x86'
  # ...
}

64-बिट आर्किटेक्चर के लिए, लेबल Amd64 है

1
Mathias R. Jessen 21 जिंदा 2021, 17:15
यह एक महान विशेषता है। यदि मेरे पास एक बहुत ही विशिष्ट एप्लिकेशन-डोमेन संबंधित पूर्व शर्त थी, तो क्या मुझे अभी भी throw के साथ जाना होगा?
 – 
René Nyffenegger
21 जिंदा 2021, 18:33
throw एक .psm1 के अंदर से आयात-समय पर मेरे लिए एक पूरी तरह से उचित स्टॉपगैप लगता है, हाँ! :-)
 – 
Mathias R. Jessen
21 जिंदा 2021, 18:38