visual studio 2010 - VS Post build event declare var in bat file and use it later -


मैं Visual Studio 2010 में signtool.exe का उपयोग कर प्रमाण पत्र वाले ऑटो साइन प्रोजेक्ट का प्रयास कर रहा हूं। यहाँ मेरा सरल पोस्ट बिल्ड है स्क्रिप्ट:

अगर $ (ConfigurationName) == डीबग (कॉल "$" (VS100COMNTOOLS) VCVarsQueryRegistry.bat "कॉल" $ (WindowsSdkDir) bin / signtool.exe "साइन / एफ" $ (ProjectDir ) My.pfx "/ p mypass / t timstamp.dll" $ (TargetPath) ")

डीबग परीक्षण प्रयोजनों के लिए है मैं विज़ुअल स्टूडियो कमांड प्रॉम्प्ट की नकल करने की कोशिश कर रहा हूं - निष्पादित करें $ (VS100COMNTOOLS) VCVarsQueryRegistry.bat जो कुछ अतिरिक्त चर जोड़ता है और बाद में इसे उपयोग करता है $ (WindowsSdkDir) मुझे इसकी आवश्यकता है।

हालांकि यह स्क्रिप्ट सरल bat फ़ाइल में पूरी तरह से काम करता है, लेकिन यह दृश्य स्टूडियो में काम करने से इनकार करता है आउटपुट है:

कॉल "सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ Tools \ VCVarsQueryRegistry.bat" कॉल "bin / signtool.exe" साइन ... < / P>

ध्यान दें कि यह $ (WindowsSdkDir) को पहचाना नहीं है, जिसे VCVarsQueryRegistry.bat में बनाया गया है।

क्या यह संभव है कि आप var में बल्लेबाजी करें और इसे बाद में उपयोग करें पोस्ट-बिल्ड या मुझे किसी अन्य दृष्टिकोण का उपयोग करना चाहिए?

यह थोड़ा मुश्किल है:

  • पहले, सीएमडी चर के लिए आपको एमएसबिल्ड-जैसी $ (var)
  • के बजाय % var% सिंटैक्स का उपयोग करने की आवश्यकता है, आगे SET कॉल बैचों से बयान लागू होते हैं .. लेकिन यदि शरीर अपने चर को सटीक बना देता है, तो आपको सिर्फ एक के बजाय कई if लाइन की आवश्यकता है शरीर

    इस तरह से यह कार्य करना चाहिए:

      यदि $ (ConfigurationName) == डिबग कॉल "% VS100COMNTOOLS% VCVarsQueryRegistry.bat" यदि $ (कॉन्फ़िगरेशननाम) == डीबग कॉल "% WindowsSdkDir% bin \ signtool.exe" साइन / एफ "$ (प्रोजेक्टडिअर) my.pfx" / p mypass / t timstamp.dll "$ ( TargetPath) "   

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -