5

विफल रहा है मैं WindowsInstaller.Installer का उपयोग कर एक ActiveXObject के रूप में एक उत्पाद स्थापित करने का प्रयास करने के लिए एक HTA का उपयोग कर रहा हूं। अतीत में उपयोग किए गए वही एचटीए मॉडल का उपयोग करके, स्थापित करने का प्रयास त्रुटि को फेंक देता है: "एमएसआई एपीआई त्रुटि: इंस्टॉल प्रोडक्ट, पैकेजपाथ, प्रॉपर्टी वैल्यूज"।एमएसआई के लिए एचटीए इंस्टॉलर

मैंने बिना किसी सफलता के विंडोज विस्टा और सर्वर 2003 दोनों पर यह कोशिश की है। दोनों IE8 का उपयोग कर रहे हैं, इसलिए मैंने सोचा कि यह कुछ प्रकार की ActiveX संगतता समस्या हो सकती है। मैंने फिर आईई 6 में इसका परीक्षण किया और उसी समस्या का सामना किया - हालांकि, हमने सफलता के साथ अतीत में कई बार एचटीए के लिए इस प्रारूप का उपयोग किया है। मैं दोनों मशीनों पर एक प्रशासक खाते से स्थापित करने का प्रयास कर रहा हूं, और एमएसआई स्वयं अपेक्षा के अनुसार निष्पादित करता है।

अब तक मैं निम्नलिखित की कोशिश की है: InstallProduct विधि के लिए

  1. "कमांड लाइन सेटिंग्स" बदलने पूर्ण
  2. को एमएसआई के लिए फ़ाइल पथ में परिवर्तन करना (दूसरा पैरामीटर) को "कार्रवाई = व्यवस्थापक "(स्थापित एक प्रशासक के लिए मजबूर करने) और" कार्रवाई = इन्सटाल "
  3. बदलने ActiveX सेटिंग्स IE में -" Initialise और स्क्रिप्ट ActiveX स्क्रिप्टिंग के लिए सुरक्षित "से" तत्काल "विश्वसनीय साइटों को
  4. जोड़ना स्थानीय होस्ट नहीं चिह्नित नियंत्रण आईई
  5. में सूची
  6. HTA को अनुकूलता मेटा टैग जोड़ना IE7Emulation, IE5 या IE6 मोड

यहाँ में चलाने के लिए विधि/संदर्भ कि विफल हो रहा है है:

var Software = new Array(
    new Array("..\\Software\\Product.msi", "ProductCode")); 

    function run_msi(i) 
{ 
    try 
    { 
     //Execute MSI application install on error resume next 
     var msi = new ActiveXObject("WindowsInstaller.Installer"); 
     var installer = Software[i][0]; 
     msi.UILevel = 5; // full interactive mode 
     msi.InstallProduct(installer, ""); 
    } 
    catch (e) 
    { 
     alert ("Unable to launch the Installer Package. This may be because you do not have permission to install software."); 
    } 
    // Check the install status of the MSI to ensure it is in the registry 
    RegistryKeyExists(i); 
} 

विधि तो कहा जाता है जब एक पर क्लिक इस प्रकार

<td><span class="link" style="display: none; visibility: hidden" id="SoftwareTextTrue0" onclick="javascript:run_msi(0);">Uninstall</span> <span class="link" style="display: none; visibility: hidden" id="SoftwareTextFalse0" onclick="javascript:run_msi(0);">Install</span> </td>

मैं बड़े पैमाने पर Google पर है और केवल कोई संबंधित समस्या पाया जब किसी की कोशिश थी बटन "इंस्टॉल करें" सिल्वरलाइट 3 स्थापित करने के लिए आईएनजी (जो स्पष्ट रूप से तय किया गया है)। कोई विचार?

+0

आप के तहत विंडोज़ पटकथा मेजबान .wsf फ़ाइल के बजाय HTA यह एक ही स्क्रिप्ट चलाने की कोशिश की है? यदि हां, तो क्या परिणाम वही था? – dreftymac

+0

मैंने XP मशीन पर व्यवस्थापकीय खाते के बिना अपना उदाहरण चलाया है और यह काम करता है। (केवल प्रदर्शन को हटा दिया गया: कोई नहीं; दृश्यता: छुपा; "') तो यह Vista/2003 के लिए विशेष हो सकता है? – Paul

+1

यह विंडोज 7 पर मेरे लिए ठीक काम करता प्रतीत होता है। क्या आपने _real_ त्रुटि कोड के लिए एप्लिकेशन इवेंट लॉग (MsiInstaller से होना चाहिए) की जांच की है? – tyranid

उत्तर

1

मुझे अपने इंस्टॉल सेट के साथ एक ही समस्या है।

मैं एक VBScript का इस्तेमाल किया और एमएसआई शुरू

Set sh = CreateObject("WScript.Shell") 
l_command = "%SystemRoot%\System32\msiexec.exe /i """ & sh.CurrentDirectory & "\" & p_file & """" 
sh.Exec l_command 
संबंधित मुद्दे