Sto utilizzando un HTA per provare a installare un prodotto utilizzando WindowsInstaller.Installer come ActiveXObject. Utilizzando lo stesso modello HTA che è stato utilizzato in passato, il tentativo di installazione genera l'errore: "Errore API Msi: InstallProduct, PackagePath, PropertyValues".HTA installer per MSI fallito
Ho provato questo su Windows Vista e Server 2003 senza successo. Entrambi hanno utilizzato IE8, quindi ho pensato che potesse essere una sorta di problema di compatibilità ActiveX. L'ho testato in IE6 e ho riscontrato lo stesso problema, tuttavia, in passato, abbiamo utilizzato questo formato per HTA diverse volte con successo. Sto tentando di installare da un account amministratore su entrambe le macchine e il file MSI stesso viene eseguito come previsto.
Finora ho provato quanto segue:
- Modifica il percorso del file per il MSI di assoluta
- Modifica delle "impostazioni della linea di comando" (il secondo parametro) per il metodo InstallProduct a "ACTION = ADMIN"(per forzare un amministratore di installazione) e 'ACTION = INSTALL'
- Modifica delle impostazioni ActiveX in IE - 'inizializzare e script controlli ActiveX non contrassegnati come sicuri per lo script' a 'Prompt'
- Aggiungendo localhost ai siti attendibili elenco in IE
- Aggiunta la compatibilità meta tag per l'HTA per l'esecuzione in IE7Emulation, IE5 o IE6 modalità
Ecco il metodo/contesto che sta fallendo:
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);
}
Il metodo viene chiamato quando si fa clic su un pulsante "install" come segue
<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>
ho Googled ampiamente e si trova solo un problema correlato quando qualcuno era provare per installare Silverlight 3 (che apparentemente è stato riparato). Qualche idea?
Hai provato l'esecuzione di questo stesso script in File .wsf Windows Scripting Host, invece di HTA? Se è così, il risultato è stato lo stesso? – dreftymac
Ho eseguito il tuo esempio senza account amministrativo su una macchina XP e funziona. (rimosso solo il '' display: none; visibility: hidden; "') Quindi potrebbe essere particolare per Vista/2003? – Paul
Sembra funzionare bene per me su Windows 7. Avete controllato il registro eventi dell'applicazione (dovrebbe essere di MsiInstaller) per il codice di errore _real_? – tyranid