हम अपने निर्माण प्रणाली के लिए NAnt बड़े पैमाने पर उपयोग करते हैं। हाल ही में, मैंने कुछ डेटाबेस संबंधित चीजों को करने के लिए कुछ PowerShell Cmdlets लिखा है। सबसे पहले, इन सीएमडलेट्स का इरादा नहीं था जो कि हमारी निर्माण प्रक्रिया के भीतर आवश्यक रूप से चल रहा था। हालांकि, यह हाल ही में एक आवश्यकता बन गई है और हम इन एनएएनटी आधारित निर्माण प्रक्रिया से इन सीएमडीलेट्स में से कुछ को चलाने के लिए चाहते हैं।एनएएनटी बिल्ड सिस्टम में पावरशेल सीएमडीलेट का उपभोग करने का एक अच्छा तरीका क्या है?
ये सीएमडीलेट सी # में लिखे गए हैं और हमारे पास उनके लिए स्नैपइन है (यदि यह बिल्कुल मायने रखता है)।
कुछ विचार:
- PowerShell कॉल करने के लिए exec कार्य का प्रयोग करें? (सुनिश्चित नहीं है कि यह कैसे काम करेगा)
- एक कस्टम NANT कार्य लिखें जो संदर्भ और सीएमडीलेट का उपयोग करता है?
ऐसा करने का एक अच्छा तरीका क्या हो सकता है?
आप एम्परसेंड के आपके उपयोग को स्पष्ट कर सकते हैं? स्पष्टीकरण के बिना, आपका उत्तर बहुत अधिक दिखता है [वीजे एम का जवाब] (http://stackoverflow.com/a/4311491/622391)? –
एम्परसैंड पावरहेल में कॉल ऑपरेटर है। निम्नलिखित विशेष ऑपरेटरों के तहत 'get-help about_operators' कमांड आउटपुट से है: 'और कॉल ऑपरेटर कमांड, स्क्रिप्ट या स्क्रिप्ट ब्लॉक चलाता है।कॉल ऑपरेटर, जिसे "आमंत्रण ऑपरेटर" भी कहा जाता है, आपको चर में संग्रहीत आदेशों को चलाने देता है और स्ट्रिंग द्वारा प्रतिनिधित्व किया जाता है। चूंकि कॉल ऑपरेटर कमांड को पार्स नहीं करता है, इसलिए यह कमांड पैरामीटर की व्याख्या नहीं कर सकता है। ' –
आगे स्पष्टीकरण के लिए, मेरे अनुभव में, इसमें शामिल नहीं होने से स्क्रिप्ट के बजाय powerhell.exe द्वारा तर्कों को संसाधित किया जा सकता है या सामान्य रूप से खो दिया जा सकता है। –