मेरे पास एक वीबीस्क्रिप्ट है जिसे मैंने लिखा है जिसे एमएसआई फ़ाइल से निष्पादित करने की आवश्यकता है। स्क्रिप्ट सही ढंग से कार्यान्वित जब मैं अपने दम पर विंडोज के भीतर इसे चलाने के लिए, तथापि, जब मैं के रूप में लॉग फ़ाइल में दिखाया गया संस्थापक मैं निम्नलिखित त्रुटि मिलती है से चलाने:वीबीस्क्रिप्ट एमएसआई फ़ाइल से सही ढंग से निष्पादित नहीं होगा
Microsoft VBScript runtime error: object required: 'WScript', Line 3, Column 2
स्क्रिप्ट नीचे है:
sub shell(cmd)
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("""" & cmd & """")
Set objShell = Nothing
end sub
set objFSO = CreateObject("Scripting.FileSystemObject")
strcmd32 = "C:\Path\PathToExecutable.exe"
strcmd64 = "C:\Path\PathToExecutable64.exe"
if (objFSO.FileExists(strcmd32)) then
shell(strcmd32)
else
shell(strcmd64)
end if
set objFSO = Nothing
जैसा कि पहले बताया गया है, यह स्क्रिप्ट ठीक चलती है अगर मैं इसे इंस्टॉलर के संदर्भ से बाहर चलाता हूं। सेटअप प्रोजेक्ट प्रकार VS2010 सेटअप और परिनियोजन पैकेज है (यह वही है जो ग्राहक उपयोग करना चाहता है और मैं किसी और चीज का उपयोग नहीं कर सकता)। कोई विचार?
WScript ऑब्जेक्ट्स एक कस्टम कार्रवाई के रूप में चल रहे वीबीएस फ़ाइलों में समर्थित नहीं हैं। यदि आपको कभी भी इस प्रकार की वस्तु का उपयोग करने की आवश्यकता है तो उपर्युक्त विधि केवल एक ही काम कर रही है। एक और पक्ष, वीबीएस कस्टम क्रियाएं मेरी पहली सिफारिश नहीं हैं, लेकिन यह सब उस समय पर निर्भर करता है जब आप सेटअप पैकेज बनाने के लिए उपलब्ध हैं। वीबीएस कस्टम क्रियाएं कई जोखिमों के साथ आती हैं, जैसे एंटीवायरस अवरोधन या बनाम इंजन कई अन्य विफलताओं को विफल करता है। एक कस्टम कार्रवाई के लिए एक Win32 DLL सबसे अच्छा विकल्प होगा। –
असल में, मेरे पास यह स्क्रिप्ट है, फिर मर्ज मॉड्यूल के अंदर शामिल शॉर्टकट बनाने के लिए एक और स्क्रिप्ट (सेटअप और परिनियोजन परियोजनाएं मर्ज मॉड्यूल के भीतर फ़ाइलों से लिंक करने की क्षमता प्रदान नहीं करती हैं), और एक स्क्रिप्ट जो हटाती है अनइंस्टॉल करने पर शॉर्टकट्स । मैं समय बचाने के लिए vbs मार्ग चला गया क्योंकि मेरे पास कस्टम एक्शन डीएलएल बनाने का तरीका जानने के लिए समय नहीं है। –