Tuesday 15 June 2010

powershell - Why doesn't psake evaluate my property the way I expect? -


मेरे पास एक सरल स्क्रिप्ट स्क्रिप्ट है:

  properties {$ SolutionDir = "SOLUTIONDIR" # रिज़ॉल-पाथ "। \ Src" $ config = "debug" $ DeployBaseDir = "$ SolutionDir \ RMSS.Setup.WiX \ bin \ $ Config" $ InstallerName = "RMSForMoversSuite_2_0_0"} कार्य डिफ़ॉल्ट -निर्धारित परीक्षण टेस्ट {"CONFIG = $ Config "" SolutioNDIR = $ SolutionDir "" DEPLOYBASEDIR = $ DeployBaseDir "}   

और मैं इसे इस तरह से कमांड लाइन से कॉल कर रहा हूं:

& amp; ; । \ Psake.ps1। \ Deploy.ps1 -properties @ {"Config" = "Staging"}

मुझे उम्मीद है कि $ DeployBaseDir के बराबर होगा < कोड> समाधान> RMSS.Setup.WiX \ bin \ Staging

लेकिन इसके बजाय, मुझे यह आउटपुट प्राप्त होता है:

  CONFIG = स्टेजिंग समाधान = SOLUTIONDIR DEPLOYBASEDIR = क्या कोई मुझे बता सकता है कि क्या हो रहा है, क्यों, और मैं कैसे उम्मीद करता हूं कि व्यवहार कैसे करें?   

>

यहां से

पैरामीटर और गुणों के लिए समर्थन

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

  invoke-psake Deploy.ps1 -parameters @ {server = '' Server01 ???}} # Deploy.ps1 प्रॉपर्टीज {$ serverToDeployTo = $ server} कार्य डिफ़ॉल्ट -नहीं   

पैरामीटर महत्वपूर्ण हैं जब आपको जानकारी की आवश्यकता होती है दूसरी ओर गुण डिफ़ॉल्ट मान को ओवरराइड करने के लिए उपयोग किया जाता है।

  invoke-psake Build.ps1 -properties @ {config = 'release'} # Build.ps1 गुणधर्म {$ config = 'debug' } कार्य डिफ़ॉल्ट - सभी   

निर्भर करता है तो आप या तो गुणों में से $ Config ले सकते हैं और इसे पैरामीटर के रूप में पास कर सकते हैं।
या $ DeployBaseDir को संपत्तियों और इसे कार्य ब्लॉक के अंदर बनाते हैं

No comments:

Post a Comment